Errore pyvenv-3.4: restituito stato di uscita diverso da zero 1


57

Quando si tenta di creare un ambiente virtuale utilizzando l'accluso pyvenv-3.4fornito con 14.04, viene generato un errore:

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

Come uso pyvenv-3.4 con Ubuntu 14.04?


1
Se stai usando Anaconda questo è il problema, Anaconda non ha ensurepip: stackoverflow.com/a/39114277/1439843
Gerhard Burger

Risposte:


50

Sfortunatamente, 14.04 è stato spedito con un rotto pyvenv. Secondo questo thread del launchpad, il problema verrà risolto nel prossimo 14.04-1

Utilizzando questo metodo è possibile installare un ambiente Pyvenv senza pip e quindi installare manualmente pip dopo il fatto.

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

Qualcuno ha suggerito una modifica radicale da utilizzare get-pip.pyin questa risposta - penso che sia un cambiamento eccessivo, ma per favore aggiungi la tua soluzione come nuova risposta (anche solo copiando la parte superiore di questa risposta)!
Volker Siegel,

In quale directory ti trovi quando esegui questi comandi? Cioè, è questa la directory in cui creerai la tua app Python o devi fare il cd in 'myenv' per questo. Oppure, perché stai creando una sottodirectory per l'ambiente? Domande stupide, ma non l'ho mai usato prima e ci sono troppe risposte diverse. Almeno la tua risposta ha un download dal sito python.org e non un repository github di cui non ho mai sentito parlare. Sono un po 'paranoico su cose del genere.
Bill Rosmus,

4
Questo rimane rotto anche nel 15.04.
Knite,

4
Questo rimane rotto nel 14.04.2 LTS
tamakisquare il

Non è un vero problema con Ubuntu, ma ho lo stesso problema con Miniconda.
art-solopov,

45

Motivo: sia Ubuntu 14.04 che Debian hanno uno pyvenv-3.4strumento rotto . Vedi bug Ubuntu 1290847 e bug Debian 732703 .

Soluzione / soluzione alternativa (più breve dell'una dall'altra risposta):

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

Ho descritto questo errore nel mio Gist . L'URL in questo codice proviene dalle istruzioni di installazione pip ufficiali .


5
Devi aggiungere il prefisso "sudo apt-get install python3.4-venv" - Altrimenti non ho un eseguibile "pyvenv-3.4" sul PERCORSO. (Ubuntu 15.04)
Jonathan Hartley,

@JonathanHartley: True. Tuttavia, il bug menzionato in questa domanda / risposta non è presente in Ubuntu 15.04, quindi la soluzione alternativa in questa risposta non è necessaria.
Denilson Sá Maia,

Curioso. Sono arrivato qui perché sto vedendo il problema in 15.04. Ah. Le ultime voci sul lungo bug di Ubuntu che colleghi dicono che è necessario installare il nuovo pacchetto python3-venv, che non è una dipendenza di python3, per ottenere la correzione.
Jonathan Hartley,

@JonathanHartley: il tuo messaggio di errore deve essere diverso dal messaggio di errore della domanda. Il tuo messaggio di errore deve essere pyvenv-3.4: command not found. E, sì, l'installazione python3-venvè la soluzione per il tuo errore.
Denilson Sá Maia,

10

Anche questo dovrebbe funzionare:

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

O meglio ancora:

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

2

Ti manca la libreria venv per python 3.4, basta eseguire:

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


0

Il modo in cui ho risolto questo è correndo

$ python -m ensurepip

Che ha prodotto uno stacktrace che termina con questa riga:

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

Quindi sono andato su https://pypi.python.org/pypi/setuptools/20.10.1 e ho afferrato la ruota e l'ho messa nella mia directory (che ho dovuto creare con mkdir -p /usr/lib64/python3.4/ensurepip/_bundled/)

Poi, correndo di python -m ensurepipnuovo, mi sono dovuto confrontare

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

Quindi sono andato su https://pypi.python.org/pypi/pip/8.1.1 , ho preso quella ruota e l'ho bloccata nella directory.

Ora posso creare virtualenvs con python -m venv .venv. Successo!


0

Testato su 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 è fuori tema qui però ...
Zanna

Mi dispiace per quello. Speravo che fosse utile come punto dati poiché Ubuntu utilizza Debian come base. Potrei provare più tardi sulla mia macchina virtuale Ubuntu
razorsniper

Sarebbe fantastico :)
Zanna

-1

Ho riscontrato questo errore perché mancava il python3-venvpacchetto sul mio sistema.


1
Per favore, puoi indicare come installarlo in modo che altri possano usarlo quando necessario.
George Udosen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.