Виртуальная среда Python3 и PIP
Я бы хотел поиграть в виртуальной среде, которая интерпретируется исключительно через python3.3. В моей системе (Ubuntu 13.04) существует два способа создания виртуальной среды.
virtualenv env
или:
pyvenv-3.3 env
Если я использую старый верный, virtualenv
, я могу использовать все, как ожидалось, однако PIP устанавливает все в библиотеки python2.7, а не python3.3 libs. Итак, вызывая скрипты с помощью
python3 script.py
Кажется, пока не работает:
python script.py
Работает как шарм. Но, очевидно, нужно использовать python2.7
Теперь, если вместо этого я использую "встроенный" venv из Python3 + (pyvenv-3.3
), кажется, что все становится немного странным. Он правильно помещает папку python3.3 lib в venv, однако установка модулей с использованием PIP больше невозможна, так как кажется, что-то ссылается на глобальную, а не на виртуальную среду.
Итак, по моему вопросу:
Как вы рекомендуете получать рабочую виртуальную среду с ТОЛЬКО Python3.3 (+) и установкой PIP в python3.3 libs?
Ответы
Ответ 1
Возможно, вам стоит попробовать что-то похожее на следующее:
-
Создайте свою виртуальную среду
$ python3 -m venv myvenv
$ source myvenv/bin/activate
(myvenv)$
-
Установите pip в соответствии с официальными инструкциями по установке пульта. Как и в случае с пунктом v1.5.1, вы больше не нужно вручную устанавливать setuptools перед установкой pip.
(myvenv)$ curl https://bootstrap.pypa.io/get-pip.py | python
-
Деактивируйте, а затем повторно активируйте свою виртуальную среду. Сделайте это, или пункт будет работать неправильно.
(myvenv)$ deactivate
$ source myvenv/bin/activate
(myvenv)$ which pip
Более длинный ответ:
Да, у меня была аналогичная проблема. Он имеет отношение ко всем другим питонам и пипсам, живущим в вашей системе, и к пипсу, который не был установлен, как это происходит с не "ядром" virtualenv, к которому вы привыкли.
По какой-то причине модуль venv не устанавливает setuptools и pip.
Я сделал выше и до сих пор, так хорошо.
venv в Python 3.3 не устанавливает сам дескриптор:
Общие инструменты установки, такие как Distribute и pip работают как ожидается с venvs - то есть, когда venv активен, они устанавливают пакеты Python в venv, не требуя, чтобы вам сказали сделать это явно. Конечно, вам нужно сначала установить их в вену.
Python 3.4 реализация venv устанавливает по умолчанию по умолчанию.
Изменено в версии 3.4: установка по умолчанию по умолчанию
http://docs.python.org/3/library/venv.html
Вы можете проверить свой пипс с помощью which pip
и pip -V
. Если вы не деактивировали/активировали venv, а pip -V
не отобразили правильный правильный пип, но which pip
все еще может показывать правильный путь.
Ответ 2
Вот как я это сделал (я на Ubuntu 12.04).
Сначала установите Python 3.3 в папку, например /opt/python3
. Затем запустите следующие команды:
/opt/python3/bin/pyvenv-3.3 ~/py3 # pyvenv is python3 built-in virtualenv
source ~/py3/bin/activate
curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python
easy_install-3.3 pip
Ответ 3
В последней версии pip
есть функция pip3
, которая будет установлена в ваш экземпляр Python3 по умолчанию.
pip3 install python_lib
Если у вас есть как Python 2.x, так и 3.y в вашей системе, pip
будет установлен в ваши Python 2.x и pip3
в Python 3.y.
Ответ 4
это работает для меня:
> virtualenv-3.3 env
...
> source env/bin/activate
> pip install simple-date
...
> python
Python 3.3.0 (default, Mar 27 2013, 20:56:52)
[GCC 4.7.2 20130108 [gcc-4_7-branch revision 195012]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import simpledate
>>>
К сожалению, я не совсем уверен, как я установил virtualenv-3.3 в день. я думаю, я, вероятно, сделал что-то вроде:
> wget http://python-distribute.org/distribute_setup.py
> python3.3 distribute_setup.py
> easy_install-3.3 virtualenv
[править: да, это подтверждается моими заметками в http://www.acooke.org/cute/GettingPyt0.html]
обратите внимание, что это виртуальный виртуальный файл python-3.3.
как описано в комментариях, я не мог получить pyvenv-3.3 для работы.
Ответ 5
У меня была такая же проблема в OS X. Похоже, что даже исполняемый файл pip
, который получает помечен в bin/
на easy_install
, все еще предназначен для Python 2. Если вы используете исполняемый файл pip3
(или вариант это), он должен работать просто отлично!
Ответ 6
Я использовал PPA ppa: fkrull/deadsnakes для установки Python 3.4 в свои Elementary Os (дистрибутив Linux на базе Ubuntu).
Я хотел бы сделать один признак. В пакете Python 3.4 Ubuntu ** при создании виртуальной среды (с pyvenv-3.4) pip устанавливается под локальным /bin вместо bin.
Итак, чтобы использовать его, вы должны изменить bin/activate script в строке 44. Это должно быть
PATH="$VIRTUAL_ENV/bin:$VIRTUAL_ENV/local/bin:$PATH"
Ответ 7
Хорошо сказано в документах:
Общие инструменты установки, такие как Distribute и pip работают как ожидается с venvs - то есть, когда venv активен, они устанавливают пакеты Python в venv, не требуя, чтобы вам сказали сделать это явно. **
Конечно, вам нужно сначала установить их в venv: это можно сделать, запустив файл distribute_setup.py с включенным venv, а затем запустив easy_install pip **
. Кроме того, вы можете загрузить исходные файлы и запустить python setup.py после распаковки, при этом активируется venv.