2011-03-18 319 views
5

不是符号链接warnings.py我有上清醒创建与python2.7的virtualenv(1.5.2)中的问题。看起来,像virtualenv正在跳过为warnings.py创建符号链接。的virtualenv会为蟒蛇2.7

Running virtualenv with interpreter /usr/local/bin/python2.7 
Creating test/lib/python2.7 
Symlinking Python bootstrap modules 
    Symlinking test/lib/python2.7/sre_compile.pyc 
    Symlinking test/lib/python2.7/encodings 
    Symlinking test/lib/python2.7/UserDict.pyc 
    Symlinking test/lib/python2.7/stat.pyo 
    Symlinking test/lib/python2.7/copy_reg.pyo 
    Symlinking test/lib/python2.7/posixpath.py 
    Symlinking test/lib/python2.7/stat.pyc 
    Symlinking test/lib/python2.7/re.py 
    Symlinking test/lib/python2.7/sre_parse.pyo 
    Symlinking test/lib/python2.7/sre_constants.pyo 
    Symlinking test/lib/python2.7/codecs.py 
    Symlinking test/lib/python2.7/lib-dynload 
    Symlinking test/lib/python2.7/locale.py 
    Symlinking test/lib/python2.7/sre.pyc 
    Symlinking test/lib/python2.7/ntpath.pyo 
    Symlinking test/lib/python2.7/types.pyo 
    Symlinking test/lib/python2.7/config 
    Symlinking test/lib/python2.7/sre_parse.py 
    Symlinking test/lib/python2.7/genericpath.pyc 
    Symlinking test/lib/python2.7/sre.py 
    Symlinking test/lib/python2.7/copy_reg.pyc 
    Symlinking test/lib/python2.7/sre.pyo 
    Symlinking test/lib/python2.7/sre_constants.py 
    Symlinking test/lib/python2.7/types.pyc 
    Symlinking test/lib/python2.7/UserDict.pyo 
    Symlinking test/lib/python2.7/ntpath.pyc 
    Symlinking test/lib/python2.7/fnmatch.py 
    Symlinking test/lib/python2.7/os.pyo 
    Symlinking test/lib/python2.7/codecs.pyo 
    Symlinking test/lib/python2.7/os.pyc 
    Symlinking test/lib/python2.7/fnmatch.pyo 
    Symlinking test/lib/python2.7/genericpath.pyo 
    Symlinking test/lib/python2.7/UserDict.py 
    Symlinking test/lib/python2.7/re.pyc 
    Symlinking test/lib/python2.7/genericpath.py 
    Symlinking test/lib/python2.7/fnmatch.pyc 
    Symlinking test/lib/python2.7/sre_compile.pyo 
    Symlinking test/lib/python2.7/posixpath.pyc 
    Symlinking test/lib/python2.7/os.py 
    Symlinking test/lib/python2.7/re.pyo 
    Symlinking test/lib/python2.7/sre_parse.pyc 
    Symlinking test/lib/python2.7/types.py 
    Symlinking test/lib/python2.7/sre_compile.py 
    Symlinking test/lib/python2.7/sre_constants.pyc 
    Symlinking test/lib/python2.7/copy_reg.py 
    Symlinking test/lib/python2.7/posixpath.pyo 
    Symlinking test/lib/python2.7/locale.pyc 
    Symlinking test/lib/python2.7/locale.pyo 
    Symlinking test/lib/python2.7/codecs.pyc 
    Symlinking test/lib/python2.7/ntpath.py 
    Symlinking test/lib/python2.7/stat.py 
Creating test/lib/python2.7/site-packages 
Writing test/lib/python2.7/site.py 
Writing test/lib/python2.7/orig-prefix.txt 
Creating parent directories for test/include 
Symlinking test/include/python2.7 
Creating test/bin 
New python executable in test/bin/python2.7 
Changed mode of test/bin/python2.7 to 0755 
Also creating executable in test/bin/python 
Changed mode of test/bin/python to 0755 
Testing executable with test/bin/python2.7 -c "import sys; print sys.prefix" 
Traceback (most recent call last): 
    File "/home/marek/projects/workspace/test/lib/python2.7/site.py", line 67, in <module> 
    import os 
    File "/home/marek/projects/workspace/test/lib/python2.7/os.py", line 49, in <module> 
    import posixpath as path 
    File "/home/marek/projects/workspace/test/lib/python2.7/posixpath.py", line 17, in <module> 
    import warnings 
ImportError: No module named warnings 
ERROR: The executable test/bin/python2.7 is not functioning 
ERROR: It thinks sys.prefix is '/home/marek/projects/workspace' (should be '/home/marek/projects/workspace/test') 
ERROR: virtualenv is not compatible with this system or executable 

File warnings.py位于/usr/local/lib/python2.7/中。

有与python2.6的创建virtualenv中没有问题。

回答

4

所以我检查virtualenv.py代码,它有一个列表REQUIRED_MODULES,似乎有模块的名称中附加新的环境/ lib目录。该列表由模块“警告”满足条件后延伸:

sys.version_info[:2] >= (2, 6) 

Python版本正确中标识,所以不存在与virtualenv.py没有问题。指定我使用的是已安装的virtualenv,而不是文件virtualenv.py。

从蟒蛇的dist-包删除文件virtualenv.pyc后,问题消失了。所以看起来像编译好的virtualenv文件有问题 - 看起来像pythons版本检查的问题。

+6

我有同样的问题。我不得不通过1)使用默认python(2.6)创建--no-site-packages virtualenv 2)在此virtualenv中使用easy_install virtualenv 3)现在使用virtualenv命令激活virtualenv 4)--no-site-packages virtualenv (头爆炸) – 2011-09-11 15:27:13

+1

@MikkoOhtamaa在这里相同,虽然我交换了步骤2和3,先激活然后安装。 – 2013-05-06 22:27:19