【问题标题】:Passing Python3 to virtualenvwrapper throws up ImportError将 Python3 传递给 virtualenvwrapper 会引发 ImportError
【发布时间】:2015-12-27 23:51:16
【问题描述】:

我正在尝试使用virtualenvwrapper 来制作基于python 3 的virtualenv。但是,当我传递可选的解释器参数时,我看到了这个错误。我正在运行 Ubuntu 15.04。我尝试重新安装 virtualenvvirtualenvwrapper 没有成功。感谢您的所有帮助!

$ 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.

【问题讨论】:

  • 这似乎是一个错误,参见例如github.com/PythonCharmers/python-future/issues/148(专业提示:搜索您的错误消息)。
  • 感谢@jonrsharpe 的评论非常感谢。这并没有出现在我的搜索中,这促使我在此处发布。所以,我想我现在必须使用 pyvenv。
  • 你找到解决办法了吗?
  • 不,我还没有找到它@EliKorvigo
  • @manu 我已经找到了相同的解决方案,如果我们可以这样称呼的话。无论如何,+1。我想有些人可能会觉得它很有用。

标签: python ubuntu python-3.x virtualenvwrapper


【解决方案1】:

我遇到了同样的问题,但是在我将 virtualenv 降级到 12.0.2 后,这个问题就消失了。

【讨论】:

【解决方案2】:

目前这是一种解决方法。

使用pyvenv 创建一个virtualenv

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

为了尽量减少对正常工作流程的干扰,请传递一个与 virtualenvwrapper 使用的相同的目标目录,这样,

pyvenv example ~/.virtualenvs/example

这会自动与workoncdproject 命令一起使用。 virtualenvwrapper提供的其他东西我用的不多

希望这会有所帮助。

【讨论】:

  • pyvenv ~/.virtualenvs/example 就足够了。然后workon example 工作。
【解决方案3】:

您可以升级到最新版本的 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 分支已被删除,因此带有“develop”的 URL 将不再有效。我的回答基于@pjotr_dolphin 的评论,并更新了网址。

【讨论】:

  • 这个在 2017 年 12 月为我工作,但我不必使用网址。
猜你喜欢
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 2018-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多