erro pyvenv-3.4: retornou um status de saída diferente de zero 1


58

Ao tentar criar um ambiente virtual usando o incluído pyvenv-3.4que acompanha o 14.04, gera um erro:

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

Como uso o pyvenv-3.4 com o Ubuntu 14.04?


11
Se você estiver usando Anaconda esse é o problema, Anaconda não tem ensurepip: stackoverflow.com/a/39114277/1439843
Gerhard Burger

Respostas:


50

Infelizmente, 14.04 foi enviado com um problema pyvenv. De acordo com este segmento da barra de ativação, o problema será resolvido nas próximas 14.04-1

Usando esse método, você pode instalar um ambiente Pyvenv sem pip e, em seguida, instalar manualmente o pip após o fato.

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

Alguém sugeriu uma edição radical para usar get-pip.pynesta resposta - acho que são muitas mudanças, mas adicione sua solução como uma nova resposta (mesmo copiando a parte superior desta resposta)!
Volker Siegel

Em que diretório você está quando executa esses comandos? Ou seja, esse é o diretório em que você criará seu aplicativo python ou você precisará colocar o cd em 'myenv' para isso. Ou, por que você está criando um subdiretório para o ambiente? Perguntas idiotas, mas nunca usei isso antes e há muitas respostas diferentes. Pelo menos sua resposta tem um download no site python.org e não em algum repositório do github que eu nunca ouvi falar. Estou um pouco paranóico com coisas assim.
Bill Rosmus

4
Isso permanece quebrado em 15.04 também.
knite

4
Isso permanece quebrado em 14.04.2 LTS
tamakisquare

Não é um problema do Ubuntu, mas tenho o mesmo problema com o Miniconda.
Art-solopov

45

Razão: O Ubuntu 14.04 e o Debian têm uma pyvenv-3.4ferramenta quebrada . Veja Ubuntu bug 1290847 e Debian bug 732703 .

Solução / solução alternativa (menor que a da outra resposta):

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

Eu descrevi esse bug no meu próprio Gist . O URL neste código é proveniente das instruções oficiais de instalação do pip .


5
Você precisa prefixar 'sudo apt-get install python3.4-venv' - Caso contrário, não tenho um executável 'pyvenv-3.4' no PATH. (Ubuntu 15.04)
Jonathan Hartley

@JonathanHartley: Verdade. No entanto, o bug mencionado nesta pergunta / resposta não está presente no Ubuntu 15.04, portanto, a solução alternativa nesta resposta não é necessária.
Denilson Sá Maia

Curioso. Cheguei aqui porque estou vendo o problema em 15.04. Ah As últimas entradas no longo bug do Ubuntu que você vincula dizem que é preciso instalar o novo pacote python3-venv, que não é uma dependência do python3, para obter a correção.
9788 Jonathan Cleyton

@ JonathanHartley: Sua mensagem de erro deve ser diferente da mensagem de erro da pergunta. Sua mensagem de erro deve ser pyvenv-3.4: command not found. E sim, a instalação python3-venvé a solução para o seu erro.
Denilson Sá Maia

10

Isso deve funcionar também:

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

Ou melhor ainda:

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

2

Está faltando a lib venv para python 3.4, basta executar:

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


0

A maneira que eu resolvi isso é executando

$ python -m ensurepip

O que produziu um rastreamento de pilha que termina com esta linha:

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

Então fui para https://pypi.python.org/pypi/setuptools/20.10.1 e peguei a roda e coloquei no meu diretório (com o qual eu tinha que criar mkdir -p /usr/lib64/python3.4/ensurepip/_bundled/)

Então, correndo python -m ensurepipnovamente, fui confrontado com

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

Então eu fui para https://pypi.python.org/pypi/pip/8.1.1 , peguei a roda e a coloquei no diretório.

Agora eu posso criar virtualenvs com python -m venv .venv. Sucesso!


0

Testado no 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!


O Debian está fora de tópico aqui ...
Zanna

Me desculpe por isso. Eu esperava que fosse útil como um ponto de dados, já que o Ubuntu usa o Debian como base. Eu poderia tentar no meu Ubuntu VM mais tarde
razorsniper

Isso seria ótimo :)
Zanna

-1

Me deparei com esse erro porque estava faltando o python3-venvpacote no meu sistema.


11
Você pode indicar como instalá-lo para que outros possam usá-lo quando necessário.
George Udosen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.