Как развернуть скрипт Python?

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

Я использовал Jupyter Notebook для разработки этого сложного кода, и я хочу узнать, как я могу упаковать или развернуть этот код так, чтобы конечный пользователь мог использовать его, не видя, как он работает, поскольку это может быть слишком сложным для них.

Может кто-нибудь помочь мне с идеей о том, как это сделать? Что-то, что является Opensource, было бы предпочтительным.

Спасибо

4 ответа

Я хочу закончить этот вопрос, предложив несколько способов развертывания Python Script или Models:

  • Докер: это один из самых популярных способов размещения скриптов и развертывания моделей машинного обучения в Интернете. Вы можете использовать Docker для контейнеризации кода и размещения его как микросервиса с использованием различных приложений.
  • PEX: PEX - это умный инструмент, разрабатываемый в Twitter, который позволяет доставлять код Python в виде исполняемых zip-файлов.
  • AWS: Используя AWS, вы можете создать бесплатную учетную запись и приступить к размещению / развертыванию. Много ресурсов доступно в Интернете.
  • PYSimple, Pyinstaller и Sparrow: как упоминалось в ответах выше, мы можем использовать эти пакеты также для выполнения этой задачи. Пожалуйста, прочтите выше.
  • Приложение Flask: если вы не хотите использовать Docker, используя простое приложение Flask, вы сможете разместить свой скрипт в Интернете. Но будет много проблем, так как он не контейнерный. Лучше всего использовать Docker.
  • py2exe: если вы хотите преобразовать файл python в исполняемый файл Windows, нажмите здесь
  • cx_Freeze: аналогично py2exe, вы также можете использовать это

Я буду добавлять больше контента по мере их нахождения, но я думаю, что лучший способ сделать это с помощью DOCKER. Надеюсь это поможет.

PyInstaller - это мощный инструмент с открытым исходным кодом для кросс-платформенного развертывания / распространения проекта Python.

* Примечание: хотя у меня нет опыта по распространению Jupyter Notebook с PyInstaller, но это руководство кажется правдоподобным.

Установить через pypi:

pip install pyinstaller

Распространение кода без консоли может быть простым:

pyinstaller --noconsole script.py

Затем вы можете найти.exe(окно) в папке dist вашей рабочей директории.

Вы хотите "развернуть" свой код Python для пользователей дружественным способом. Я предполагаю, что это означает графический интерфейс.

Один из способов сделать это - заставить вашу программу Python отображать интерфейс GUI при ее выполнении. Если у вас установлен Python в их системе и у вас есть связанные с ним файлы.py, то ваши пользователи смогут дважды щелкнуть ваш файл.py, и он будет работать так, как будто они нажали на.EXE.

Ваши потребности в GUI кажутся минимальными. Недавно был выпущен новый пакет PySimpleGUI, который предоставляет то, что вы ищете. Проверьте эту статью, чтобы увидеть, если она соответствует тому, что вы ищете. https://opensource.com/article/18/8/pysimplegui

Один из участников пакета PySimpleGUI обнаружил, что можно создать один файл.EXE, чтобы казалось, что программа Python похожа на другие программы Windows, потому что она запускается прямо в GUI.

Для этого используйте пакет PyInstaller, как указано в другом ответе.

pyinstaller -wF your_PySimpleGUI_based_program.py

Предполагая, что у вас нет GUI, я бы использовал пакетный файл (.bat) для вызова скрипта с предоставленными входными данными.

your_script.bat:

set VAR_1=this
set VAR_2=that

python your_script.py %VAR_1% %VAR_2%

Затем получите эти аргументы в скрипте Python через

sys.argv[0]  sys.argv[1]

Для конечных пользователей это всего лишь двойной щелчок!

Я надеюсь, что у вас есть идея

Для полноты картины следует упомянуть dh-virtualenv от Spotify, который позволяет упаковывать код Python в виде пакета debian.

В качестве отправной точки можно использовать этот пост в блоге: Как мы развертываем код Python

Используйте воробья, чтобы доставить ваш скрипт конечным пользователям. Это хорошо работает и со скриптами Python.

По сути, вы просто декларируете свои требования как requirements.txt файл и назовите ваш скрипт как story.pyВы можете обрабатывать входные параметры внутри скрипта как:

  from outthentic import *

    foo = config()['main']['foo']
    bar = config()['main']['bar']

Затем вы загружаете свой скрипт в SparrowHub:

$ nano sparrow.json
{
    "name": "my-script",
    "version": "0.1.0",
    "description" : "this is my script",
}

$ ls -1
story.py
requirements.txt
sparrow.json

$ sparrow plg upload

Наконец, конечные пользователи просто используют ваш скрипт как:

$ sparrow plg install my-script
$ sparrow plg run my-script --param main.foo=1 --param main.bar=2

PS. Раскрытие Я являюсь автором инструмента. Дайте мне знать, если вам нужна помощь с упаковкой вашего сценария.

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