我发布了一个Python应用程序,可以在Debian服务器上进行部署。在安装应用程序时,提供一个包含所有所需Python包列表的requirements.txt
文件非常方便,尤其是当伴随Makefile
并使用pip
自动安装时。{/ p>
但是你知道一些Python软件包依赖于Linux系统软件包(在这种情况下是Debian),如果我可以在我的项目中提供类似的文件来一步安装它们,并定义{{ 1}}规则自动化它。
Makefile
或dpkg
是否提供此类功能?
答案 0 :(得分:1)
您当然可以转储dpkg
安装的所有软件包,但这可能不是您想要做的 - 您最终会获得与您的软件无关的软件包的可能性,并且可能打破系统,如果它是一个不同的debian版本。
我的建议是将您的软件安装到新的debian机器上并尝试pip install
requirements.txt
中的所有内容。由于python软件包安装失败(因为缺少debian软件包),请创建一个文本文件,其中包含所需debian软件包的换行符列表。
然后,在每个新系统上只有cat my-deb-dependencies | xargs apt-get install
。
这需要一些手动工作 - 我认为没有可靠的自动化方法。
答案 1 :(得分:0)
将分发包装(apt)与python的包装(pip)混合会造成混淆;如果可能,请通过分发提供的软件包满足您的依赖性。然后使用Debian的打包方法打包,在debian / control文件的Depends:部分声明依赖关系。
《 Debian Python指南》 https://wiki.debian.org/Python/LibraryStyleGuide中提供了大量信息。