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.