utworzyć i aktywować virtualenv (venv) przy użyciu Pythona 3.3 wbudowanego sposób to zrobić:Dlaczego dystrybuować i instalować pip na moim virtualenv's ./local/bin?
$ python3.3 -m venv env
$ source env/bin/activate
W tym momencie python
jest Python w moim virtualenv, które oczekują:
(env) $ which python
/my_home_directory/env/bin/python
teraz chcę zainstalować dystrybucję i pip, więc mogę pobrać skrypty konfiguracyjne i uruchomić je:
(env)$ wget http://python-distribute.org/distribute_setup.py
(env)$ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
(env)$ python distribute_setup.py
(env)$ python get-pip.py
tych poleceń pełne sukcesów sfully. W tym momencie sprawdzam moje venv, aby znaleźć inny katalog o nazwie "local", którego wcześniej nie było. env/local/bin zawiera moje easy_install i pip wykonywalnych, a oni nadal alias do istniejącego easy_install i pip mojego systemu:
(env)$ ls env
bin include lib local pyvenv.cfg
(env)$ ls env/bin
activate pydoc python python3 python3.3
(env)$ ls env/local/bin
easy_install easy_install-3.3 pip pip-3.3
(env)$ which easy_install
/usr/bin/easy_install
(env)$ which pip
/usr/bin/pip
wierzę, że jest to odejście od zachowań Python 2.x jest. W tym momencie oczekuję, że easy_install
i pip
będą używać kopii virtualenv, a użycie ich do zainstalowania jajek spowoduje umieszczenie ich w virtualenv.
Idąc dalej, otwieram env/bin/activate, aby znaleźć, że env/bin jest uprzednio ustawione na ścieżkę systemową, ale env/local/bin nie jest. To wyjaśnia zachowanie, które widzę. mogę obejść ten problem poprzez edycję ENV/bin/aktywować, aby dodać do katalogu ENV/local/bin do ścieżki, coś jak:
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
PATH="$VIRTUAL_ENV/local/bin:$PATH" # my new line
export PATH
Więc, co tu się dzieje? Czy to błąd, czy coś mi brakuje?
Jestem na Ubuntu 12.10 w przypadku, które robi różnicę.
Myślałem, że virtualenv miał już zawierać 'pip' /' easy_install'? – MattDMo
Nieparzysty. Używam osobistej wersji Pythona 3.3 na Debianie i rozpowszechniam/pip install w 'env/bin' dla mnie. Czy twoja kopia 3.3 z repozytorium Ubuntu?Jeśli tak, spróbuj utworzyć lokalną kopię i sprawdź, czy działa poprawnie. – eryksun
@MattDMo Wierzę, że pip i easy_install są dołączone, gdy używasz komendy 'virtualenv', ale nie wydaje się, że jest tak w przypadku modułu venv Pythona 3.3, sądząc po dokumentach. @eryksun Jest to rzeczywiście wersja Python 3.3 dla Ubuntu. Spróbuję budować lokalnie i złożyć raport. –