这听起来像是一个开放式的问题,但我是一个python爱好者,对于这个开发世界来说,这是相当新的。我开发了一个Python脚本,它接收输入,并根据我在脚本中放置的算法给出输出。我希望使用此脚本并将其打包,以便没有技术观念且只关心输入的最终用户可以使用它给予和产出。我已经使用Jupyter Notebook开发了这段复杂的代码,我想知道如何打包或部署这段代码,以便最终用户可以使用它,而不必看到它是如何工作的,因为这可能会让他们不知所措。有人能帮我的想法如何做到这一点吗?一些是开源的将是首选。
uoifb46i1#
我想通过建议几种部署Python脚本或模型的方法来总结这个问题:
*Docker:这是在线托管脚本和部署机器学习模型的最流行方式之一。您可以使用Docker将代码容器化,并使用不同的应用将其作为微服务托管。*PEX:PEX是Twitter正在开发的一个聪明的工具,它允许Python代码以可执行zip文件的形式发布。*AWS:使用AWS,你可以创建一个免费的账户,开始托管/部署。在线上有很多资源。*PYSimple、Pyinstaller和Sparrow:正如上面的回答所提到的,我们也可以使用这些软件包来完成任务。请阅读上面的内容。*培养瓶应用程序:如果你不想使用Docker,使用一个简单的 flask 应用程序,你将能够在线托管你的脚本。但是会有很多问题,因为它不是容器化的。最好使用Docker。*py 2 exe:如果您希望将Python文件转换为Windows可执行文件,Click here*cx_Freeze:与py 2 exe类似,您也可以使用它
我会继续添加更多的内容,因为我发现他们,但我认为最好的方法是使用Docker。希望这有帮助。
zrfyljdw2#
PyInstaller是一个强大的opensource工具,用于python项目的跨平台部署/分发。
通过pypi安装:
pip install pyinstaller
没有控制台的代码分发可以简单到:
pyinstaller --noconsole script.py
然后你可以在你的工作目录的dist文件夹下找到你的.exe(窗口)。
jdgnovmf3#
为了完整起见,应该提到Spotify的dh-virtualenv,它允许将python代码打包为debian-package。作为一个起点,可以使用这个博客:How We Deploy Python Code
pokxtpni4#
假设您没有GUI,我将使用批处理(.bat)文件来使用提供的输入调用脚本。
your_script.bat: set VAR_1=this set VAR_2=that python your_script.py %VAR_1% %VAR_2%
然后通过以下方式在python脚本中检索这些参数
sys.argv[1] sys.argv[2]
对于最终用户来说,只需双击!我希望你明白[EDIT:sys.argv[0]是脚本的名称]
8wigbo565#
使用Sparrow将脚本交付给最终用户,它也可以很好地与Python脚本一起工作。基本上,您只需将需求声明为requirements.txt文件并将脚本命名为task.py,就可以将脚本中的输入参数处理为:
requirements.txt
task.py
from sparrow6lib import * foo = config()['foo'] bar = config()['bar']
然后将脚本上传到SparrowHub:
$ nano sparrow.json { "name": "my-script", "version": "0.1.0", "description" : "this is my script", } $ ls -1 task.py requirements.txt sparrow.json $ s6 --upload
最后,最终用户只需将您的脚本用作:
$ s6 --install my-script $ s6 --plg-run my-script@foo=1,bar=2
我是工具的作者。如果你需要任何帮助来打包你的脚本,请告诉我。PS2我已经改变了原来的答案,因为我最近移植麻雀到乐
5条答案
按热度按时间uoifb46i1#
我想通过建议几种部署Python脚本或模型的方法来总结这个问题:
*Docker:这是在线托管脚本和部署机器学习模型的最流行方式之一。您可以使用Docker将代码容器化,并使用不同的应用将其作为微服务托管。
*PEX:PEX是Twitter正在开发的一个聪明的工具,它允许Python代码以可执行zip文件的形式发布。
*AWS:使用AWS,你可以创建一个免费的账户,开始托管/部署。在线上有很多资源。
*PYSimple、Pyinstaller和Sparrow:正如上面的回答所提到的,我们也可以使用这些软件包来完成任务。请阅读上面的内容。
*培养瓶应用程序:如果你不想使用Docker,使用一个简单的 flask 应用程序,你将能够在线托管你的脚本。但是会有很多问题,因为它不是容器化的。最好使用Docker。
*py 2 exe:如果您希望将Python文件转换为Windows可执行文件,Click here
*cx_Freeze:与py 2 exe类似,您也可以使用它
我会继续添加更多的内容,因为我发现他们,但我认为最好的方法是使用Docker。希望这有帮助。
zrfyljdw2#
PyInstaller是一个强大的opensource工具,用于python项目的跨平台部署/分发。
通过pypi安装:
没有控制台的代码分发可以简单到:
然后你可以在你的工作目录的dist文件夹下找到你的.exe(窗口)。
jdgnovmf3#
为了完整起见,应该提到Spotify的dh-virtualenv,它允许将python代码打包为debian-package。
作为一个起点,可以使用这个博客:How We Deploy Python Code
pokxtpni4#
假设您没有GUI,我将使用批处理(.bat)文件来使用提供的输入调用脚本。
然后通过以下方式在python脚本中检索这些参数
对于最终用户来说,只需双击!
我希望你明白
[EDIT:sys.argv[0]是脚本的名称]
8wigbo565#
使用Sparrow将脚本交付给最终用户,它也可以很好地与Python脚本一起工作。
基本上,您只需将需求声明为
requirements.txt
文件并将脚本命名为task.py
,就可以将脚本中的输入参数处理为:然后将脚本上传到SparrowHub:
最后,最终用户只需将您的脚本用作:
我是工具的作者。如果你需要任何帮助来打包你的脚本,请告诉我。
PS2我已经改变了原来的答案,因为我最近移植麻雀到乐