Ошибка pyvenv-3.4: возвращено ненулевое состояние выхода 1

При попытке создать виртуальную среду с помощью включенного pyvenv-3.4 который приходит с 14.04, он выдает ошибку:

Error: Command '['/some/directories/bin/python3.4', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1

Как мне использовать pyvenv-3.4 с Ubuntu 14.04?

7 ответов

Решение

К сожалению, 14.04 поставляется с сломанной pyvenv, Согласно этой ветке панели запуска, проблема будет решена в предстоящем 14.04-1.

Используя этот метод, вы можете установить среду Pyvenv без pip, а затем вручную установить pip по факту.

pyvenv-3.4 --without-pip myvenv
source ./myvenv/bin/activate
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-3.4.4.tar.gz
tar -vzxf setuptools-3.4.4.tar.gz
cd setuptools-3.4.4
python setup.py install
cd ..
wget https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz
tar -vzxf pip-1.5.6.tar.gz
cd pip-1.5.6
python setup.py install
cd ..
deactivate
source ./myvenv/bin/activate

Причина: у Ubuntu 14.04 и Debian сломан pyvenv-3.4 инструмент. Смотрите Ubuntu bug 1290847 и Debian bug 732703.

Решение / обходной путь (короче, чем ответ от другого):

pyvenv-3.4 --without-pip venvdir
source venvdir/bin/activate
curl https://bootstrap.pypa.io/get-pip.py | python
deactivate
source venvdir/bin/activate

Я описал эту ошибку в моем собственном Gist. URL в этом коде взят из официальных инструкций по установке в pip.

Это должно работать тоже:

sudo apt-get install python-virtualenv
virtualenv -p python3 myvenv

Или еще лучше:

sudo apt-get install python3-pip
sudo pip3 install virtualenv
virtualenv myvenv

Вам не хватает библиотеки venv для python 3.4, просто запустите:

$ apt-get install python3.4-dev python3.4-venv

Проверено на Debian


$ python3.4 -m venv --without-pip env
$ cd env
$ source ./bin/activate # virtualenv activated

$ wget https://bootstrap.pypa.io/get-pip.py # get installation script for pip
$ python3.4 get-pip.py
$ deactivate
$ source venvdir/bin/activate

$ pip list # just to check that pip works!

Я решил это, запустив

$ python -m ensurepip

Который создал трассировку стека, заканчивающуюся этой строкой:

FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib64/python3.4/ensurepip/_bundled/setuptools-20.10.1-py2.py3-none-any.whl'

Поэтому я зашел на https://pypi.python.org/pypi/setuptools/20.10.1 схватил колесо и поместил его в свой каталог (который мне пришлось создать с помощью mkdir -p /usr/lib64/python3.4/ensurepip/_bundled/)

Потом работает python -m ensurepip снова я столкнулся с

No such file or directory: '/usr/lib64/python3.4/ensurepip/_bundled/pip-8.1.1-py2.py3-none-any.whl

Поэтому я зашел на https://pypi.python.org/pypi/pip/8.1.1, взял это колесо и сунул его в каталог.

Теперь я могу создавать virtualenvs с python -m venv .venv, Успех!

Я столкнулся с этой ошибкой, потому что мне не хватало python3-venv пакет в моей системе.

Другие вопросы по тегам