Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“Debian”的等价物是什么;要求.txt“;用Python管理包?_Python_Linux_Debian_Pip_Dpkg - Fatal编程技术网

“Debian”的等价物是什么;要求.txt“;用Python管理包?

“Debian”的等价物是什么;要求.txt“;用Python管理包?,python,linux,debian,pip,dpkg,Python,Linux,Debian,Pip,Dpkg,我正在为Debian服务器上的部署提供一个Python应用程序。在安装应用程序时,提供一个requirements.txt文件以及所有需要的Python软件包的列表非常方便,特别是当附带一个Makefile以使用pip从中自动安装时 但正如您所知,一些Python软件包依赖于Linux系统软件包(本例中为Debian),如果我能在项目中提供一个类似的文件,一步安装所有这些软件包,并定义Makefile规则以实现自动化,那就太好了 dpkg或apt提供这样的功能吗?您当然可以转储由dpkg安装的所

我正在为Debian服务器上的部署提供一个Python应用程序。在安装应用程序时,提供一个
requirements.txt
文件以及所有需要的Python软件包的列表非常方便,特别是当附带一个
Makefile
以使用
pip
从中自动安装时

但正如您所知,一些Python软件包依赖于Linux系统软件包(本例中为Debian),如果我能在项目中提供一个类似的文件,一步安装所有这些软件包,并定义
Makefile
规则以实现自动化,那就太好了


dpkg
apt
提供这样的功能吗?

您当然可以转储由
dpkg
安装的所有软件包,但这可能不是您想要做的-如果是不同的debian版本,您将得到与软件无关的软件包,并可能破坏系统

我的建议是将您的软件安装到一台全新的debian机器上,并尝试
pip安装
您的
requirements.txt
中的所有内容。由于python包安装失败(由于缺少debian包),请创建一个文本文件,其中包含所需debian包的换行分隔列表

然后,只需在每个新系统上安装
cat my deb dependencies | xargs即可


这需要一些手工工作——我认为没有可靠的方法实现自动化。

将分发打包(apt)与python打包(pip)混合使用会让人感到困惑;如果可能,通过分发提供的包来满足您的依赖关系。然后使用Debian的打包方法打包,在Debian/control文件的Depends:部分声明依赖项


Debian Python指南中有大量可用信息:

是的。。。dpkg提供了一种功能,您可以使用它来实现类似的效果。但人们使用的工具,如Puppet,更适合于这种用途。配置管理系统的安装障碍和学习曲线对于像我这样的简单应用程序来说是不值得的。在这种情况下,你可以使用dpkg本身。是的,这很有效。但我希望
requirements.txt
文件的酷功能,如需要特定版本号、预下载软件包或评论,得到
apt
@aalizadeh的官方支持,你当然可以,而且(记住,它们可能不再可用)。@aalizadeh尽管你不能(轻松地)如果这是你的意思,那么就从一个包列表文件开始。但是写剧本很容易。