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


57

При попытке создать виртуальную среду с использованием включенного в комплект 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?


1
Если вы используете Anaconda, это проблема, Anaconda не имеет ensurepip: stackoverflow.com/a/39114277/1439843
Герхард Бургер

Ответы:


50

К сожалению, 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

Кто-то предложил радикальное редактирование, чтобы использовать get-pip.pyв этом ответе - я думаю, что это слишком много изменений, но, пожалуйста, добавьте свое решение в качестве нового ответа (даже просто скопировав верхнюю часть этого ответа)!
Фолькер Сигел

В каком каталоге вы запускаете эти команды? То есть, это каталог, в котором вы будете собирать свое приложение на Python, или вам для этого нужно перейти в «myenv». Или почему вы создаете подкаталог для среды? Тупые вопросы, но я никогда не использовал это раньше, и есть слишком много разных ответов. По крайней мере, ваш ответ имеет одну загрузку с сайта python.org, а не какой-то репозиторий github, о котором я никогда не слышал. Я немного параноидален по поводу подобных вещей.
Билл Росмус

4
Это остается сломанным и в 15.04.
вязать

4
Это остается сломанным в 14.04.2 LTS
tamakisquare

Не совсем проблема с Ubuntu, но у меня такая же проблема с Miniconda.
арт-солопов

45

Причина: и в 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 .


5
Вам нужно поставить префикс «sudo apt-get install python3.4-venv» - в противном случае у меня нет исполняемого файла «pyvenv-3.4» в PATH. (Ubuntu 15.04)
Джонатан Хартли

@JonathanHartley: правда. Однако ошибка, упомянутая в этом вопросе / ответе, отсутствует в Ubuntu 15.04, поэтому обходной путь в этом ответе не является необходимым.
Денилсон Са Майя,

Любопытно. Я получил здесь , потому что я видел проблему в 15.04. Ах. Последние несколько записей о длинной ошибке Ubuntu, которую вы связываете, говорят, что для получения исправления необходимо установить новый пакет python3-venv, который не является зависимостью от python3.
Джонатан Хартли

@JonathanHartley: Ваше сообщение об ошибке должно отличаться от сообщения об ошибке из вопроса. Ваше сообщение об ошибке должно быть pyvenv-3.4: command not found. И, да, установка python3-venvявляется решением вашей ошибки.
Денилсон Са Майя

10

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

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

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

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

2

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

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


0

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

$ 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. Успех!


0

Проверено на 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!


Debian здесь не по теме ...
Zanna

Прости за это. Я надеялся, что это будет полезно в качестве точки данных, поскольку Ubuntu использует Debian в качестве основы. Я мог бы попробовать в своей Ubuntu VM позже
razorsniper

Это было бы здорово :)
Занна

-1

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


1
Пожалуйста, вы можете указать, как его установить, чтобы другие могли использовать его при необходимости.
Джордж Удосен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.