2015-03-03 188 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

回答