2015-09-30 33 views
5

我試圖使用virtualenvwrapper來創建一個基於python 3的virtualenv。然而,當我通過可選的解釋器參數時,我看到了這個錯誤。我正在運行Ubuntu 15.04。我嘗試重新安裝virtualenvvirtualenvwrapper,但沒有成功。感謝你的幫助!將Python3傳遞給virtualenvwrapper拋出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

這似乎是一個錯誤,請參閱https://github.com/PythonCharmers/python-future/issues/148(pro-tip:搜索你的錯誤信息)。 – jonrsharpe

+0

感謝評論@jonrsharpe非常感謝。這並沒有出現在我的搜索中,這促使我在這裏發佈。所以,我想我現在必須使用pyvenv。 – manu

+0

您是否找到解決方案? –

回答

2

這是目前的一種解決方法。使用pyvenv創建virtualenv

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

要在您的正常工作流程的干擾最小化,通過一個目標目錄是一樣的virtualenvwrapper像這樣使用一個,

pyvenv example ~/.virtualenvs/example

這是自動workoncdproject命令工作。我不使用virtualenvwrapper

提供的其他東西希望這會有所幫助。

+0

'pyvenv〜/ .virtualenvs/example'就夠了。然後'workon example'工作。 – user3148949

5

我遇到了同樣的問題,但在將virtualenv降級到12.0.2後,此問題消失。

+0

這就像一個魅力! –

+0

另一個流血的替代方案是:** pip install --upgrade [https://github.com/pypa/virtualenv/archive/develop.zip](https://github.com/pypa/virtualenv/archive/develop。 zip)**,請參閱https://github.com/pypa/virtualenv/issues/812。 –

1

您可以升級到最新版本的virtualenv,具有:

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

以下命令即可工作:

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

顯然,develop分支被放棄了,所以用「的網址發展「將不再起作用。我的回答是基於@ pjotr_dolphin的評論,並更新了URL。

+1

這一個在2017年12月爲我工作,但我沒有使用的網址。 –