我有python代码,它使用MySQL数据库。如何创建包含两者的Linux可执行文件? python代码也依赖于一些共享对象。那些也需要包含在可执行文件中。
答案 0 :(得分:0)
您可以采取一些不同的途径,这取决于您的需求。
Debian / RPM Packging
此方法涉及创建可使用包管理器安装的Linux包。
优点:它可以引入mysql和外部库,得到很好的支持,附带处理大多数Linux系统上的软件包的应用程序(Muon,synaptics,ubuntu软件管理器),通过存储库更新(如果使用的话),新手友好
缺点:特定于包管理器标准(yum / apt),需要处理的不仅仅是python代码,只需要* nix(没有窗口),需要在某处托管文件或访问存储库Github / VCS和可执行脚本
此方法涉及要求用户签出一个普通的git仓库,其中包含一些可以运行的脚本来完成您的工作。
优点:易于部署和更新,开发人员友好
缺点:没有依赖性检查,除非您自己构建,需要安装git
或其他控制版权软件,用户不太友好
<强> PIP / setuptools的强>
此方法涉及创建(通常)仅限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和其他任何你无法自带的依赖项。 (还有mariaDB与mysql兼容,你可能不想强迫其中一个)。我想考虑包含一个配置文件(使用configparser
),这样他们就可以自己管理数据库了。它减轻了您自己的负担,并提供了一种安全更新软件的绝佳方法。如果您使用像SqlAlchemy这样的ORM,它还可以使用其他数据库。