我有 python 代码,它使用 MySQL 数据库。如何创建包含两者的 Linux 可执行文件? python 代码也依赖于一些共享对象。这些也需要包含在可执行文件中。
最佳答案
您可以采用几种不同的途径,这取决于您的需要。
Debian/RPM 打包
此方法涉及创建一个可以使用包管理器安装的 linux 包。
优点:它可以引入 mysql 和外部库,得到很好的支持,在大多数 Linux 系统(Muon、synaptics、ubuntu 软件管理器)上都带有处理包的应用程序,如果使用则通过存储库更新,新手友好
缺点:特定于包管理器标准(yum/apt),需要处理的不仅仅是 python 代码,仅限 *nix(无 Windows),需要在某处托管文件或访问存储库
Github/VCS 和可执行脚本
此方法涉及要求用户 checkout 一个普通的 git 存储库,其中包含一些他们可以运行的脚本来完成您的工作。
优点:易于部署和更新,对开发人员友好
缺点:没有依赖检查,除非你自己构建它,需要安装 git
或其他控制版本软件,不太用户友好
Pip/设置工具
此方法涉及创建一个(通常)仅限 python 的包。
优点:易于使用 PyPi 打包和分发到多个平台(https://pypi.python.org/pypi),可以安装到虚拟环境中
缺点:不处理 MySQL 或外部库,除非它们存在于 PyPi 中
自解压存档
http://xmodulo.com/how-to-create-a-self-extracting-archive-or-installer-in-linux.html
优点:简单、体积小
缺点:没有依赖性检查,需要在某处托管文件
我建议使用 Pip/Setuptools 并告诉人们安装 mysql 和任何其他您无法自行安装的依赖项。 (还有与 mysql 兼容的 mariaDB,您可能不想强行使用一个)。我会考虑包含一个配置文件(使用 configparser
),这样他们就可以自己管理数据库。它减轻了您自己的负担,并提供了一种安全更新软件的绝佳方式。如果您使用像 SqlAlchemy 这样的 ORM,它还打开了使用其他数据库的可能性。
关于python - 如何在 Linux 中为 MySQL+Python 创建可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33746097/