最简单的复制:
$ virtualenv venv
$ ./venv/bin/pip install future virtualenv
Collecting future
Using cached future-0.14.3.tar.gz
Collecting virtualenv
Using cached virtualenv-12.1.1-py2.py3-none-any.whl
Installing collected packages: future, virtualenv
Running setup.py install for future
Successfully installed future-0.14.3 virtualenv-12.1.1
$ ./venv/bin/virtualenv -ppython3.4 venv34
Running virtualenv with interpreter /usr/bin/python3.4
Traceback (most recent call last):
File "/home/anthony/venv/local/lib/python2.7/site-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 "/home/anthony/venv/lib/python2.7/site-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.
这是virtualenv
中的一个错误,因为它混淆了 2.7 和 3.4 模块路径。 上游报告了几个类似的问题:
https://github.com/pypa/virtualenv/issues/745
https://github.com/pypa/virtualenv/issues/671
https://github.com/pypa/virtualenv/issues/625
https://github.com/pypa/virtualenv/pull/697
现在最好使用 Python 3.3+ 附带的pyvenv
。
pyvenv 并不是针对 2+3 的代码库的真正选择(特别是考虑到 pyvenv 不完全正确的许多边缘情况(并且由于被困在 stdlib 中而无法修复))。 是否有潜在的计划将有用的位(反向移植、移动等)从 py3 模块名称的阴影中分离出来?
谢谢你提到这一点,安东尼。 我认为拥有可供 Python 3.4 解释器访问的 Python 2.7 site-packages
文件夹通常会导致大量损坏。 所以我同意 Elliott 的观点,即这是一个 virtualenv 错误。 (也许是 bug #673 的重新浮出水面。)
我必须承认我已经有 2 年没有使用 virtualenv 了(自从我发现了 conda)。 我会试着找点时间进一步修改它,看看发生了什么。 但是,阅读https://github.com/pypa/virtualenv/pull/697 ,我宁愿怀疑这是一个脆弱的黑客鸟巢......
你能解决这个问题吗? 在回答我猜想之后可能会很好地关闭。
是否有潜在的计划将有用的位(反向移植、移动等)从 py3 模块名称的阴影中分离出来?
@qulogic @edschofield这实际上是我们在公司进行的 pythonpath 挖掘的效果。 我们已经把它考虑在内了。
吃货*
@bukzor实际上不是,看看我的复制品
我刚刚遇到这个问题,看起来它是在 virtualenv 12.04 中引入的,我已经开始固定到 virtualenv 12.02 没有问题
有同样的问题。 降级到 virtualenv 12.0.2 解决了这个问题。
遇到同样的问题。 我的版本是 13.1.2。 正如 valerymelou 所提到的,不得不降级到 12.0.2。
降级到 12.0.2 也对我有用
他们是要修复错误还是什么?
对于 Ubuntu 14.04,这种组合对我有用:
$ wget https://bootstrap.pypa.io/get-pip.py -O - | sudo python3.4
$ sudo pip3.4 install virtualenv
$ head -n 1 /usr/local/bin/virtualenv
#!/usr/bin/python3
$ virtualenv venv34
Using base prefix '/usr'
New python executable in venv34/bin/python3
Also creating executable in venv34/bin/python
Installing setuptools, pip, wheel...done.
$ ./venv34/bin/pip install virtualenv
Collecting virtualenv
Using cached virtualenv-13.1.2-py2.py3-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv-13.1.2
$ ./venv34/bin/virtualenv -p python venv
Running virtualenv with interpreter /usr/bin/python
New python executable in venv/bin/python
Installing setuptools, pip, wheel...done.
$ /usr/bin/python --version
Python 2.7.6
$ ./venv/bin/pip install future virtualenv
Collecting future
Collecting virtualenv
Using cached virtualenv-13.1.2-py2.py3-none-any.whl
Installing collected packages: future, virtualenv
Successfully installed future-0.15.2 virtualenv-13.1.2
$ ./venv34/bin/pip install future
Collecting future
Installing collected packages: future
Successfully installed future-0.15.2
$ sudo apt-get update
$ sudo apt-get install -y build-essential
$ sudo apt-get install -y python3.4-dev
$ sudo apt-get install -y python3-software-properties
现在,tox 运行得很漂亮:)
嗨,伙计们,我看到了您的意见,fernandojunior 建议对我有用,但是现在我将 virtualenv 更新到 14.0.5,并且此版本已解决问题,目前我正在使用 linuxmint 17.3 x64 在我的主机上工作
遇到相同错误但使用 conda 环境时该怎么办?
关闭,因为此对话已停止并且python-future
似乎没有剩余的操作。 如果我可能弄错了,请重新打开:)
对对对! 这在virtualenv
项目中得到了解决
最有用的评论
对于 Ubuntu 14.04,这种组合对我有用:
现在,tox 运行得很漂亮:)