将 Python3 传递给 virtualenvwrapper 会抛出 ImportError
Passing Python3 to virtualenvwrapper throws up ImportError
我正在尝试使用 virtualenvwrapper
制作基于 python 3 的 virtualenv
。但是,当我传递可选的解释器参数时,我看到了这个错误。我 运行 Ubuntu 15.04。我尝试重新安装 virtualenv
和 virtualenvwrapper
但没有成功。感谢您的帮助!
$ 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.
目前这是一种解决方法。
使用 pyvenv
创建一个 virtualenv
。
# install pyvenv on Ubuntu
sudo apt-get install python3-venv
为了尽量减少对正常工作流程的干扰,请传递与 virtualenvwrapper
使用的目标目录相同的目标目录,就像这样,
pyvenv example ~/.virtualenvs/example
这会自动与 workon
和 cdproject
命令一起使用。 virtualenvwrapper
提供的其他东西我用的不多
希望对您有所帮助。
我遇到了同样的问题,但是在我将 virtualenv 降级到 12.0.2 之后,这个问题就消失了。
您可以升级到最新版本的 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
显然,开发分支已被删除,因此 URL 和 "develop" 将不再有效。我的回答基于@pjotr_dolphin 的评论,URL 已更新。
我正在尝试使用 virtualenvwrapper
制作基于 python 3 的 virtualenv
。但是,当我传递可选的解释器参数时,我看到了这个错误。我 运行 Ubuntu 15.04。我尝试重新安装 virtualenv
和 virtualenvwrapper
但没有成功。感谢您的帮助!
$ 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.
目前这是一种解决方法。
使用 pyvenv
创建一个 virtualenv
。
# install pyvenv on Ubuntu
sudo apt-get install python3-venv
为了尽量减少对正常工作流程的干扰,请传递与 virtualenvwrapper
使用的目标目录相同的目标目录,就像这样,
pyvenv example ~/.virtualenvs/example
这会自动与 workon
和 cdproject
命令一起使用。 virtualenvwrapper
希望对您有所帮助。
我遇到了同样的问题,但是在我将 virtualenv 降级到 12.0.2 之后,这个问题就消失了。
您可以升级到最新版本的 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
显然,开发分支已被删除,因此 URL 和 "develop" 将不再有效。我的回答基于@pjotr_dolphin 的评论,URL 已更新。