不同Python版本的virtualenv会抛出ImportError

时间:2014-12-16 23:27:30

标签: python windows python-2.7 python-3.x virtualenv

我四处搜索,并没有在其他地方看过这个。

我的Windows机器使用Python 2.7作为默认Python。我运行virtualenv来创建一个使用Python 3.4的虚拟环境:

C:\virtualenvs>virtualenv -p C:\Python34\python.exe mypy3

并收到错误:

Running virtualenv with interpreter C:\Python34\python.exe
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\virtualenv.py", line 8, in <module>
    import base64
  File "C:\Python34\lib\base64.py", line 9, in <module>
    import re
  File "C:\Python34\lib\re.py", line 324, in <module>
    import copyreg
  File "C:\Python27\lib\site-packages\copyreg\__init__.py", line 2, in <module>
    from future.utils import PY3
  File "C:\Python27\lib\site-packages\future\utils\__init__.py", line 75, in <mo
dule>
    import functools
  File "C:\Python34\lib\functools.py", line 21, in <module>
    from collections import namedtuple
  File "C:\Python34\lib\collections\__init__.py", line 17, in <module>
    from reprlib import recursive_repr as _recursive_repr
  File "C:\Python27\lib\site-packages\reprlib\__init__.py", line 8, in <module>
    raise ImportError('Cannot import module from python-future source folder')
ImportError: Cannot import module from python-future source folder

1 个答案:

答案 0 :(得分:0)

我需要指定virtualenv的完整路径:

C:\virtualenvs>C:\python34\Scripts\virtualenv.exe -p C:\Python34\python.exe 

因为我实际上是在说这个:

C:\virtualenvs>C:\python27\Scripts\virtualenv.exe -p C:\Python34\python.exe

因为C:\python27\Scripts位于我的PATH中。而Python 2.7和3.4的碰撞导致了这个问题。