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

Не уверен, что происходит, но вы действительно не должны использовать системный питон для чего-либо вообще. (Кроме того, я не знаю, что вы установили, - моя 10.10.2 система virtualenv даже не распознает вариант -allways-copy.) Моя рекомендация - pyenv или homebrew (или оба, а также pyenv-virtualenv полезны). Также сначала попробуйте его на обычном томе (а не на сетевом ресурсе), посмотрите, работает ли он таким образом. – letitbee

+0

@letitbee - нормальный том не приводит к ошибкам и - всегда копия распознается. Благодарю. Я также рассмотрю правильную упаковку интерпретатора с использованием Platter, как это предлагается в принятом ответе. – fredrik

ответ

1

Возможно, попробуйте решить большую проблему (разумной упаковки) вместо настройки виртуальных внутренних элементов?

Например, посмотрите на http://platter.pocoo.org/ или, возможно, на http://cx-freeze.sourceforge.net/ (я не уверен, какой сценарий вы имеете в виду).

Смежные вопросы