Ошибка 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
пакет в моей системе.