создать и активировать virtualenv (venv) с использованием Python 3.3 встроенный в способ сделать это:Зачем распространять и устанавливать pip на мой файл ./local/bin?
$ python3.3 -m venv env
$ source env/bin/activate
На данный момент python
является питона в моем virtualenv, который я ожидал:
(env) $ which python
/my_home_directory/env/bin/python
Теперь я хочу, чтобы установить распространение и пип, поэтому я загрузить сценарии установки и запустить их:
(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
Эти команды полные SucceS sfully. В этот момент я проверяю свой venv, чтобы найти другой каталог под названием «local», которого раньше не было. окр/местный/бен содержит мой easy_install и пипсы исполняемых файлов, и они все еще псевдонимы к существующей моей системе easy_install и пипу:
(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
Я считаю, что это отклонение от поведения Python 2.x в. На данный момент я ожидаю, что easy_install
и pip
будут использовать копии virtualenv, а использование их для установки яиц поместит их в virtualenv.
Идти немного дальше, я открываю env/bin/активировать, чтобы найти, что env/bin добавлен к системному пути, но env/local/bin нет. Это объясняет поведение, которое я вижу. Я могу обойти эту проблему путем изменения окр/бен/активировать, чтобы добавить каталог окр/местные/бен на пути, что-то вроде:
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
PATH="$VIRTUAL_ENV/local/bin:$PATH" # my new line
export PATH
Итак, что здесь происходит? Это ошибка, или я чего-то не хватает?
Я нахожусь на Ubuntu 12.10 в случае, если это имеет значение.
Я думал, что virtualenv должен был содержать 'pip' /' easy_install' уже? – MattDMo
Нечетные. Я использую личную сборку Python 3.3 на Debian и распространяю/pip install в 'env/bin' для меня. Является ли ваша копия 3.3 из репозитория Ubuntu?Если да, попробуйте создать локальную копию и посмотреть, работает ли она правильно. – eryksun
@MattDMo Я считаю, что pip и easy_install включены, когда вы используете команду 'virtualenv', но это, похоже, не относится к модулю venv модуля Python 3.3, судя по документам. @eryksun Это действительно версия Ubuntu Python 3.3. Я попытаюсь построить локально и отчитаться. –