Я хотел бы создать 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'
Не уверен, что происходит, но вы действительно не должны использовать системный питон для чего-либо вообще. (Кроме того, я не знаю, что вы установили, - моя 10.10.2 система virtualenv даже не распознает вариант -allways-copy.) Моя рекомендация - pyenv или homebrew (или оба, а также pyenv-virtualenv полезны). Также сначала попробуйте его на обычном томе (а не на сетевом ресурсе), посмотрите, работает ли он таким образом. – letitbee
@letitbee - нормальный том не приводит к ошибкам и - всегда копия распознается. Благодарю. Я также рассмотрю правильную упаковку интерпретатора с использованием Platter, как это предлагается в принятом ответе. – fredrik