Подтвердить что ты не робот

Виртуальная среда 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?

4b9b3361

Ответ 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.