向人们提供你的 python 程序的最佳方式是什么
我想把我的 python 程序提供给一些人,他们会在 Linux 中运行它。最好的方法是什么?是否最好给他们每个脚本 - 我有 5 个,或者将其制作成像 *.deb 这样的安装程序
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想把我的 python 程序提供给一些人,他们会在 Linux 中运行它。最好的方法是什么?是否最好给他们每个脚本 - 我有 5 个,或者将其制作成像 *.deb 这样的安装程序
谢谢。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
只需 tar(zip)它并发送它,.deb 是基于 debian 的发行版,并且对于某些脚本来说很乏味:
如果您有外部依赖项,则添加一个包含所需外部依赖项的requirements.txt作为奖励;这样人们就可以通过运行
pip install -rrequirements.txt
轻松安装需求;示例requirements.txt(每个所需部门一条规则):just tar (zip) it and send it off, .deb is debian based distro's only and tedious for just some scripts:
for a bonus add a requirements.txt with the required external dependancies if you have external dependancies; this way people can install the requirements easily by running
pip install -r requirements.txt
; Example requirements.txt (one rule per required dep):如果您已使用
virtualenv
和pip
,则可以按照 pip freeze /blog/2009/05/notes-using-pip-and-virtualenv-django/" rel="nofollow">此处。在安装说明中,您告诉您的朋友使用:
If you have used
virtualenv
andpip
, you can usepip freeze
as described here.In the installation instructions you tell your friend to use:
如果您了解一点 C/C++,您可以编写一个小型 C/C++ 程序,它将所有 Python 脚本粘合在一起,并将 Python 解释器打包在一起,从而生成一个相当漂亮的可执行文件。 Google“将 python 脚本嵌入到 C/C++ 应用程序中”并在 python 文档中查找 CPython Api 参考。
If you know a little of C/C++, you could make a tiny C/C++ program which kinda Glues all your python scripts together and packs the Python interpreter with it making a pretty presentable executable. Google "Embedding python scripts into a C/C++ application" and look for the CPython Api reference in your python docs.
您可以使用以下内容创建 .deb 包:
您的目录应该有一个 yourdirectory/DEBIAN/control 文件,如 此处,以及程序文件的yourdirectory/usr/share/uniquename,以及需要安装的任何其他目录。
You can make a .deb package with:
Your directory should have a yourdirectory/DEBIAN/control file as described here, and yourdirectory/usr/share/uniquename for your program's files, and whatever other directories that need to be installed.