Переименуйте исполняемый файл Python 3.7 без проблем

1

Я переименовал 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?

  • 0
    Переключитесь на Linux, и это легко исправить;). В python 3.7 pip является частью стандартной библиотеки, поэтому рекомендуемый способ запуска pip - это python -m pip . Я рекомендую вам сделать это вместо использования pip37.exe . В pip37.exe исполняемый файл pip / pip37.exe является просто оболочкой для этой команды.
  • 0
    Вы можете использовать символическую ссылку рядом с исполняемым файлом (например, python37.exe -> python.exe) и запустить конкретную версию с помощью символической ссылки. Это не повлияет на полные пути во встроенных сценариях (например, встроенные в pip37.exe). Тем не менее, он все еще требует управления порядком установки в PATH чтобы установить, какая версия запускается через неквалифицированный python в командной строке. Это легче всего решить, активировав виртуальную среду, созданную модулем venv в Python 3.
Теги:
python-3.7

2 ответа

4
Лучший ответ

Это звучит как 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/

1

В 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 ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню