Я переименовал python.exe
в python37.exe
чтобы избежать конфликта с другими версиями. Он работает для запуска python, но если я запустил pip37.exe
(находящийся в /Scripts), я получаю следующую ошибку:
Fatal error in launcher: Unable to create process using '"c:\python37-32\python.exe" "C:\Python37-32\Scripts\pip37.exe"
Есть ли способ сохранить python.exe
переименован в python37.exe
, но сохранить все инструменты python?
Это звучит как A BAD IDEA.
Есть инструменты, которые помогут вам справиться именно с такими вещами. Лучший из них imho - pyenv
: https://github.com/pyenv/pyenv
Это довольно просто установить. Для этого нужно немного привыкнуть - обернуть голову вокруг виртуальных сред, но в конечном итоге все упростит работу.
Например, в моей системе у меня есть следующие версии python:
pyenv versions
system
2.7.10
* 3.5.6 (set by /Users/.pyenv/version)
3.5.6/envs/core4
3.6.4
3.6.4/envs/core5
core4
core5
Тот, у которого есть звездочка, в настоящее время является глобальной версией, которая будет использоваться в любой оболочке по умолчанию. Я могу изменить это, используя pyenv global 3.6.4
например. Я также могу создавать виртуальные среды. Например, core4 и core5 - это виртуальные среды, которые я создал для определенных проектов. Каждый из них будет иметь свои собственные библиотеки, установленные pip install
и различными версиями python. Вы можете активировать virtualenv для данного сеанса оболочки, например pyenv activate core5
.
И если вы думаете, "что на самом деле это связано с Windows", посмотрите здесь: https://duckduckgo.com/?q=Windows+Subsystem+for+Linux&atb=v93-1__&ia=web и здесь: http ://timmyreilly.azurewebsites.net/python-pip-virtualenv-installation-on-windows/
В Windows Python устанавливается PyLauncher. Вам не нужны виртуальные среды или переименование трюков. py.exe
находится в стандартном пути Windows, имеет ключи командной строки для выбора используемой версии Python и позволяет использовать "shebangs", чтобы указать, какую версию Python запускать для скриптов:
py script.py # Run the latest Python installed (or specified by PY_PYTHON environment variable).
py -2 script.py # Run the latest Python 2 version installed.
py -3 script.py # Run the latest Python 3 version installed.
py -2.7 script.py # Run the specific Python version.
py -2.7-32 script.py # Run the 32-bit specific Python version.
Скрипты могут использовать shebangs, похожие на Linux:
#!python2
#!python3
#!python2.7
#!python2.7-32
Чтобы запустить pip с определенной версией:
py -2.7 -m pip install ...
python -m pip
. Я рекомендую вам сделать это вместо использованияpip37.exe
. Вpip37.exe
исполняемый файлpip
/pip37.exe
является просто оболочкой для этой команды.PATH
чтобы установить, какая версия запускается через неквалифицированныйpython
в командной строке. Это легче всего решить, активировав виртуальную среду, созданную модулем venv в Python 3.