Я работаю над большим проектом, который нужно перенести с python2 .7 на python3 .7. Для разработки я полагаюсь на виртуальные envs.
Для 2.7v я использую виртуальную среду, созданную с помощью модуля virtualenv
, и ее пакеты virtualenvwrapper
и virtualenvwrapper-win
.
Для 3.7v я попытался создать env с использованием тех же пакетов, на этот раз я установил их в каталог python3 .7. Мне удалось настроить python3 .7 с его собственной переменной среды, назвав ее python3.exe
, чтобы я мог выбрать, куда устанавливать дополнительные пакеты python.
т.е. pip install virtualenv
- для установки Virtualenv
в каталоге python2 .7, но
python3 -m pip install virtualenv
- для установки в каталог python3 .7
C:\Users\user1>pip freeze
...
stevedore==1.30.1
virtualenv==16.4.3
virtualenv-clone==0.5.1
virtualenvwrapper==4.8.4
virtualenvwrapper-win==1.2.5
против
C:\Users\user1>python3 -m pip freeze
...
stevedore==1.31.0
virtualenv==16.7.5
virtualenv-clone==0.5.3
virtualenvwrapper==4.8.4
virtualenvwrapper-win==1.2.5
Пока все хорошо.
Когда я хочу создать виртуальный env с именем envTest
с python3 .7, вот команда Я использую:
mkvirtualenv python3 envTest
Чтобы избежать дальнейших ошибок, я переименовал новый python исполняемый файл в локальной папке env на python0.exe
.
Теперь, Я могу проверить пути и версии всех трех доступных python источников (python.exe
= python2 .7, python3.exe
= python3 .7 и python0.exe
= python, исполняемых из виртуальной среды).
НО , вот что я получаю:
(envTest) C:\Users\user1\projects\env_testing>whereis python
C:\Python27\python.exe
(envTest) C:\Users\user1\projects\env_testing>whereis python3
C:\Users\user1\AppData\Local\Programs\Python\Python37\python3.exe
(envTest) C:\Users\user1\projects\env_testing>whereis python0
C:\Users\user1\Envs\envTest\Scripts\python0.exe
(envTest) C:\Users\user1\projects\env_testing>python --version
Python 2.7.16
(envTest) C:\Users\user1\projects\env_testing>python3 --version
Python 3.7.4
(envTest) C:\Users\user1\projects\env_testing>python0 --version
Python 2.7.16
(envTest) C:\Users\user1\projects\env_testing>
Мне кажется, что я не получил права virtualenvwrapper
при создании envTest
env, и тем самым косвенно назвал неправильную python версию.
Как я мог это исправить?
Я также попытался просто попробовать python3 .x встроенный venv
, но при его использовании я получаю сообщение об ошибке:
C:\Users\user1\projects>python3 -m venv ./venv_Test venvEnv
Error: [WinError 2] The system cannot find the file specified
чет Хотя он создал следующие каталоги, но без python исполняемого файла
C:\Users\user1\projects\venv_Test>dir
...
30.01.2020 14:41 <DIR> .
30.01.2020 14:41 <DIR> ..
30.01.2020 14:41 <DIR> Include
30.01.2020 14:41 <DIR> Lib
30.01.2020 14:41 117 pyvenv.cfg
30.01.2020 14:41 <DIR> Scripts
...