2015-09-30 10 views
5

Sto provando a utilizzare virtualenvwrapper per creare un python 3 basato su virtualenv. Comunque, sono quando passo l'argomento dell'interprete opzionale, sto vedendo questo errore. Sto usando Ubuntu 15.04. Ho provato a reinstallare virtualenv e virtualenvwrapper senza successo. Grazie per tutto il vostro aiuto!Passare Python3 a virtualenvwrapper genera ImportError

$ mkvirtualenv scriptcutter --python=/usr/bin/python3 
Running virtualenv with interpreter /usr/bin/python3 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 8, in <module> 
    import base64 
    File "/usr/lib/python3.4/base64.py", line 9, in <module> 
    import re 
    File "/usr/lib/python3.4/re.py", line 336, in <module> 
    import copyreg 
    File "/usr/local/lib/python2.7/dist-packages/copyreg/__init__.py", line 7, in <module> 
    raise ImportError('This package should not be accessible on Python 3. ' 
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted. 
Error in sys.excepthook: 
Traceback (most recent call last): 
    File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 53, in apport_excepthook 
    if not enabled(): 
    File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 24, in enabled 
    import re 
    File "/usr/lib/python3.4/re.py", line 336, in <module> 
    import copyreg 
    File "/usr/local/lib/python2.7/dist-packages/copyreg/__init__.py", line 7, in <module> 
    raise ImportError('This package should not be accessible on Python 3. ' 
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted. 

Original exception was: 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 8, in <module> 
    import base64 
    File "/usr/lib/python3.4/base64.py", line 9, in <module> 
    import re 
    File "/usr/lib/python3.4/re.py", line 336, in <module> 
    import copyreg 
    File "/usr/local/lib/python2.7/dist-packages/copyreg/__init__.py", line 7, in <module> 
    raise ImportError('This package should not be accessible on Python 3. ' 
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted. 
+1

Questo sembra essere un bug, si veda ad es. https://github.com/PythonCharmers/python-future/issues/148 (pro-tip: cerca i tuoi messaggi di errore). – jonrsharpe

+0

Grazie per il commento @jonrsharpe Molto apprezzato. Questo non è venuto nella mia ricerca che mi ha spinto a postarlo qui. Quindi, suppongo che per ora dovrò usare pyvenv. – manu

+0

Hai trovato una soluzione? –

risposta

2

Questa è una sorta di soluzione alternativa per ora.

Creare un virtualenv utilizzando pyvenv.

# install pyvenv on Ubuntu 
sudo apt-get install python3-venv 

per minimizzare i disagi nel flusso di lavoro normale, passare una directory di destinazione che è lo stesso di quello utilizzato da virtualenvwrapper Come così,

pyvenv example ~/.virtualenvs/example

Questo è il lavoro automaticamente con workon e cdproject comandi . Io non uso molto altro che è fornito da virtualenvwrapper

Spero che questo aiuti.

+0

'pyvenv ~/.virtualenvs/example' è sufficiente. Quindi 'workon example' funziona. – user3148949

5

Ho riscontrato lo stesso problema, ma dopo aver eseguito il downgrade di virtualenv su 12.0.2, questo problema scompare.

+0

Funziona come un fascino! –

+0

Un'altra alternativa di bleeding è: ** pip install --upgrade [https://github.com/pypa/virtualenv/archive/develop.zip](https://github.com/pypa/virtualenv/archive/develop. zip) **, consultare https://github.com/pypa/virtualenv/issues/812 come riferimento. –

1

È possibile effettuare l'aggiornamento alla versione più recente di virtualenv, con:

sudo pip install --upgrade https://github.com/pypa/virtualenv/archive/master.zip 
virtualenv --version 
# Returns 15.2.0.dev0 when I ran it 

Il seguente comando funziona allora:

mkvirtualenv scriptcutter --python=/usr/bin/python3 

A quanto pare, il ramo di sviluppo è stato abbandonato, in modo che l'URL con " sviluppare "non funzionerà più. La mia risposta era basata sul commento di @ pjotr_dolphin, con l'URL aggiornato.

+1

Questo ha funzionato per me a dicembre 2017, ma non ho dovuto usare l'url. –