Как использовать специальную c версию интерпретатора python для запуска сценария без его установки в системе? - PullRequest
0 голосов
/ 05 августа 2020

Мой код может работать только на определенной c версии python (64 бит python 3) и с некоторыми установленными библиотеками. Однако я не хочу устанавливать конкретную c версию python и библиотеки на каждом компьютере, на котором я хочу ее запустить. Есть ли способ запустить его без какой-либо установки указанной c версии python и библиотек?

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Перечисляю свои идеи по поводу вашей проблемы. Я лично использовал их все в прошлом, и все они работали. Вы можете использовать любой способ, но перед тем, как использовать любой из них, проверьте все за и против и выберите разумно в соответствии с вашей проблемой (например, если вы просто хотите попробовать сценарий в Python 2.7, (2) и (3) - это идеальное решение, но если вы разрабатываете и в 2.7, и в 3.8, (4) или (1) могут быть лучшими. Если вы хотите, чтобы ваши клиенты могли легко запускать ваше приложение, вы можете выбрать (1))

(1) Вы можете проверить Docker. Есть определенные c Docker изображений для определенных c Python версий. Проверить Docker сайт Python. Вы можете выбрать конкретные c версии, на которых будет работать ваш код. Если вам нужно установить пакеты, вы можете запустить requirements.txt, чтобы установить их все, но если вам нужно установить другое приложение, вы можете создать свой собственный образ Docker на основе одного из перечисленных образов.

(2) Другой, более pythoni c способ - использовать virtualenv и указать, какой Python вы будете использовать sh. Однако для этого также требуется загрузить и разархивировать другую версию Python, но ее установка не требуется.

Соответствующий флаг в virtualenv:

discovery:
  discover and provide a target interpreter

  --discovery {builtin}         interpreter discovery method (default: builtin)
  -p py, --python py            target interpreter for which to create a virtual (either absolute path or identifier string) (default: c:\python38-32\python.exe)

(3) Кроме того, если вы разархивируете другую версию Python, вы можете просто использовать это, используя абсолютный путь к исполняемому файлу.

(4) И моя последняя идея - использовать pyenv, который является версией Python управляющий делами. Он прост в использовании и переключении между версиями Python, я сам использовал это раньше. Также проверьте их веб-сайт .

(5) Вы можете упаковать интерпретатор и приложение в один исполняемый файл, например, с помощью py2exe . Никогда не пользовался этим инструментом.

0 голосов
/ 05 августа 2020

Типичный способ выполнить sh это использовать PyInstaller , который компилирует ваш Python в байт-код и создает исполняемый файл. Он также собирает все ваши зависимости и помещает их в папку для вас. Py2Exe и Nuitka делают аналогичные вещи. Nuitka может заставить ваш код работать быстрее в некоторых случаях, если это важно для вас.

Все эти решения преобразуют ваши исходные файлы .py во что-то другое. Если вы хотите распространить исходные файлы И ваш конкретный c Python дистрибутив, я не знаю, есть ли конкретный c проект для этого варианта использования.

Я использую PyInstaller для развертывания моих приложение на другие компьютеры в моей организации. Когда я добавляю новые функции в свое приложение, я часто перестраиваю папку распространения, но копирую только сгенерированный исполняемый файл на клиентские компьютеры. Эта модель работает нормально, если все различные библиотеки и модули не изменились. Если вы измените библиотеки в своем приложении или перейдете на новую версию Python, тогда вам захочется скопировать всю папку распространения на клиенты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...