2024-04-26 06:02:24 发布
网友
我有python代码,它使用MySQL数据库。如何创建一个包装这两者的Linux可执行文件?python代码也依赖于一些共享对象。这些文件也需要包含在可执行文件中。你知道吗
有几个不同的途径,你可以采取,这取决于你的需要。你知道吗
Debian/RPM打包
此方法涉及创建一个可以使用包管理器安装的linux包。你知道吗
优点:它可以引入mysql和外部libs,支持良好,附带用于处理大多数Linux系统(Muon、synaptics、ubuntu software manager)上的包的应用程序,通过存储库进行更新(如果使用),对新手友好
缺点:特定于包管理器标准(yum/apt),需要处理的不仅仅是python代码,*nix only(没有windows),需要在某处托管文件或访问存储库
Github/VCS和可执行脚本
这个方法要求用户用一些脚本签出一个普通的git repo,这些脚本可以运行来完成您的工作。你知道吗
优点:易于部署和更新,对开发人员友好 缺点:没有依赖性检查,除非你自己构建,需要安装git或其他控件验证软件,用户友好性较差
git
Pip/设置工具
此方法涉及创建(通常)仅限python的包。你知道吗
优点:使用PyPi(https://pypi.python.org/pypi)易于打包和分发到多个平台,可以安装到虚拟环境中
缺点:不处理MySQL或外部lib,除非它们存在于PyPi中
自解压存档
http://xmodulo.com/how-to-create-a-self-extracting-archive-or-installer-in-linux.html
优点:简单,体积小
缺点:没有依赖性检查,需要把文件放在某个地方
我建议使用Pip/Setuptools,告诉人们安装mysql和其他任何你自己无法安装的依赖项。(还有与mysql兼容的mariaDB,你可能不想强迫一个超过另一个)。我想包括一个配置文件(使用configparser),这样他们就可以自己管理数据库了。它减轻了您的负担,并提供了一个很好的方法来安全地更新您的软件。如果您使用类似SqlAlchemy的ORM,它还提供了使用其他数据库的可能性。你知道吗
configparser
有几个不同的途径,你可以采取,这取决于你的需要。你知道吗
Debian/RPM打包
此方法涉及创建一个可以使用包管理器安装的linux包。你知道吗
优点:它可以引入mysql和外部libs,支持良好,附带用于处理大多数Linux系统(Muon、synaptics、ubuntu software manager)上的包的应用程序,通过存储库进行更新(如果使用),对新手友好
缺点:特定于包管理器标准(yum/apt),需要处理的不仅仅是python代码,*nix only(没有windows),需要在某处托管文件或访问存储库
Github/VCS和可执行脚本
这个方法要求用户用一些脚本签出一个普通的git repo,这些脚本可以运行来完成您的工作。你知道吗
优点:易于部署和更新,对开发人员友好 缺点:没有依赖性检查,除非你自己构建,需要安装
git
或其他控件验证软件,用户友好性较差Pip/设置工具
此方法涉及创建(通常)仅限python的包。你知道吗
优点:使用PyPi(https://pypi.python.org/pypi)易于打包和分发到多个平台,可以安装到虚拟环境中
缺点:不处理MySQL或外部lib,除非它们存在于PyPi中
自解压存档
http://xmodulo.com/how-to-create-a-self-extracting-archive-or-installer-in-linux.html
优点:简单,体积小
缺点:没有依赖性检查,需要把文件放在某个地方
我建议使用Pip/Setuptools,告诉人们安装mysql和其他任何你自己无法安装的依赖项。(还有与mysql兼容的mariaDB,你可能不想强迫一个超过另一个)。我想包括一个配置文件(使用
configparser
),这样他们就可以自己管理数据库了。它减轻了您的负担,并提供了一个很好的方法来安全地更新您的软件。如果您使用类似SqlAlchemy的ORM,它还提供了使用其他数据库的可能性。你知道吗相关问题 更多 >
编程相关推荐