Изменение папки virtualenv на windows

После исправления компьютера мои проекты на python изменились (каталог) (скажем, с d: на f:). теперь все мои добродетели разрушены. после активации env проект внутри virtualenv не может найти зависимости и пользовательские сценарии (из папки env\scripts) не будут работать

пробовал запустить:

virtualenv --relocateble ENV_NAME (with the env name ..)

как в этом вопросе stackru, и он вывел много строк, как:

Script agent\Scripts\deactivate.bat cannot be made relative

и мой virtualenv все еще сломан.

когда я вручную изменил activ.bat set VIRTUAL_ENV на новый путь. некоторые сценарии снова работают. но сценарии перемещения по-прежнему не работают, и большинство сценариев все еще не работает

даже запуск интерпретатора Python завершается неудачно с:

Traceback (most recent call last):
  File "F:\Python27\learn\agent\agent\lib\site.py", line 677, in <module>
    main()
  File "F:\Python27\learn\agent\agent\lib\site.py", line 666, in main
    aliasmbcs()
  File "F:\Python27\learn\agent\agent\lib\site.py", line 506, in aliasmbcs
    import locale, codecs
  File "F:\Python27\learn\agent\agent\lib\locale.py", line 19, in <module>
    import functools
ImportError: No module named functools

есть ли способ это исправить? ПОМОГИТЕ

Обновление: я также вручную изменил строку интерпретатора python shebang во всех скриптах в ENV\Scripts. теперь все терпят неудачу с той же самой ошибкой питона как выше

Другое обновление: для @udi системный путь к Python:

['', 'C:\\dev\\Python27\\lib\\site-packages\\distribute-0.6.37-py2.7.egg', 'C:\\
dev\\Python27\\lib\\site-packages\\pip-1.3.1-py2.7.egg', 'C:\\dev\\Python27\\lib
\\site-packages\\numpy-1.7.1-py2.7-win32.egg', 'C:\\dev\\Python27\\lib\\site-pac
kages\\pandas-0.11.0-py2.7-win32.egg', 'C:\\dev\\Python27\\lib\\site-packages\\p
ytz-2013b-py2.7.egg', 'C:\\dev\\Python27\\lib\\site-packages\\python_dateutil-2.
1-py2.7.egg', 'C:\\dev\\Python27\\lib\\site-packages\\six-1.3.0-py2.7.egg', 'C:\
\dev\\Python27\\lib\\site-packages\\tornado-3.0.1-py2.7.egg', 'C:\\dev\\Python27
\\lib\\site-packages\\pyzmq-13.1.0-py2.7-win32.egg', 'C:\\dev\\Python27\\lib\\si
te-packages\\pygments-1.6-py2.7.egg', 'C:\\Windows\\system32\\python27.zip', 'C:
\\dev\\Python27\\DLLs', 'C:\\dev\\Python27\\lib', 'C:\\dev\\Python27\\lib\\plat-
win', 'C:\\dev\\Python27\\lib\\lib-tk', 'C:\\dev\\Python27', 'C:\\dev\\Python27\
\lib\\site-packages', 'C:\\dev\\Python27\\lib\\site-packages\\setuptools-0.6c11-
py2.7.egg-info']

так как я не могу запустить Python из virtualenv, я не могу напечатать путь Python оттуда

3 ответа

Решение

Похоже, ваша система и локальные среды создают смесь библиотек и двоичных файлов из разных версий Python.

Скорее всего, вам нужно будет удалить Lib, Scripts а также Include и начать снова с virtualenv ., Вы могли бы сохранить site-packages папка, но если у вас есть requirements.txt файлы, вам, вероятно, следует переустановить пакеты (см. также: Как установить из локального кэша с помощью pip?).

Во всяком случае, я считаю, что вы можете создать сценарий, который делает все это за один шаг.

Исправление пути к каталогу Python в ENV_FOLDER\Lib\orig-prefix.txt помог мне

Я установил как py2, так и py3 на свои окна 10. И получил эту ошибку путем создания virtualenv с помощью virtualenv xxx непосредственно. После очистки папки xxx и переустановки с virtualenv -p TARGET_PY_EXE xxx все работает плавно. Надеюсь, что это поможет нескольким пользователям Python Windows. Кстати, я просто создаю переменные env как PY2 и PY3 вместо добавления абсолютных путей в PATH,

Другие вопросы по тегам