Как развернуть скрипт 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. Раскрытие Я являюсь автором инструмента. Дайте мне знать, если вам нужна помощь с упаковкой вашего сценария.