2015-03-03 196 views
2

我想创建一个不使用符号链接到本地​​系统的virtualenv,因为我希望将virtualenv(包括第三方包)与我的应用程序捆绑在一起。这是可能的 - 如果是这样,如何?创建没有符号链接的virtualenv

例如,在我的Mac OS X 10.10.2,我产生任何的virtualenv包含符号链接:

.Python -> /System/Library/Frameworks/Python.framework/Versions/2.7/Python 

如果我直接在网络服务器上创建共享我的virtualenv与--always-copy我得到一个错误:

$ virtualenv --always-copy python2.7.9_win7-64_stalker0.2.13 
New python executable in python2.7.9_win7-64_stalker0.2.13/bin/python 
Traceback (most recent call last): 
    File "/usr/local/bin/virtualenv", line 11, in <module> 
    sys.exit(main()) 
    File "/Library/Python/2.7/site-packages/virtualenv.py", line 825, in main 
    symlink=options.symlink) 
    File "/Library/Python/2.7/site-packages/virtualenv.py", line 985, in create_environment 
    site_packages=site_packages, clear=clear, symlink=symlink)) 
    File "/Library/Python/2.7/site-packages/virtualenv.py", line 1374, in install_python 
    symlink) 
    File "/Library/Python/2.7/site-packages/virtualenv.py", line 482, in copyfile 
    copyfileordir(src, dest, symlink) 
    File "/Library/Python/2.7/site-packages/virtualenv.py", line 456, in copyfileordir 
    shutil.copy2(src, dest) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2 
    copystat(src, dst) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat 
    os.chflags(dst, st.st_flags) 
OSError: [Errno 22] Invalid argument: 'python2.7.9_win7-64_stalker0.2.13/.Python' 
+0

不知道发生了什么,但你真的不应该使用系统python的任何东西。 (另外,我不知道你已经安装了什么 - 我的10.10.2系统virtualenv甚至不能识别-always-copy选项。)我的建议是pyenv或自制软件(或两者兼而有之,pyenv-virtualenv也很有用)。首先在正常音量(不是网络共享)上尝试它,看看它是否以这种方式工作。 – letitbee 2015-03-03 09:42:13

+0

@letitbee - 正常音量不会导致错误,并且--always-copy被识别。谢谢。正如接受的答案中所建议的那样,我也将使用Platter来研究解释器的正确包装。 – fredrik 2015-03-03 09:43:35

回答