包管理 – Debian包如何从PyPI安装Python模块
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了包管理 – Debian包如何从PyPI安装Python模块,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1765字,纯文字阅读大概需要3分钟。
内容图文
![包管理 – Debian包如何从PyPI安装Python模块](/upload/InfoBanner/zyjiaocheng/739/7d7fe19fb1eb4fa7a201382d69dcfd06.jpg)
这个问题试图补充this one.
我有一个python应用程序,它使用PyPI的第三方模块.我想将我的应用程序打包成debian包,但不知道如何处理不在debian / ubuntu存储库中的python依赖项(也包装为debian包)
解决方案#1:
从PyPI构建模块直接进入我的debian包.
解决方案#2:
使用stdeb为我需要的所有PyPI模块创建debian包,并将它们添加到debian / ubuntu存储库.
我实际上需要一个解决方案#3,因为我想在安装我的debian软件包时安装PyPI依赖项,最好是安装到virtualenv中!
什么是解决方案#3?我是否需要调整DEBIAN / preinst维护者脚本?
解决方法:
我在Debian IRC频道irc://irc.debian.org#debian-mentors上与一些维护人员交谈,要求完全相同的事情,并且普遍的共识是:
解决方案#1:
通过将源文件作为单个代码库复制而在包中集成依赖关系是非常不满意的.它会破坏处理依赖关系,更新,版本控制等的打包系统的目的.
解决方案#3:
在安装二进制文件(.deb)时即时下载非debian软件包是一个严重的安全风险,绝对是禁止的.您甚至无法通过提取deb来检查依赖项,因为它们是在安装时下载并安装的.这是一种完全绕过存储库系统的方法.没有关心的用户会对一个软件包感到满意,这个软件包在幕后(并且作为root用户,请记住!),从不受信任的来源下载其他不受信任的软件.是的,这需要摆弄DEBIAN / postinst(或preinst)并发布wget(或者,在你的情况下,pip install),这就是Flash,Oracle Java,Steam等采用的方法.但这是专有的闭源软件,所以无论如何它们的安全性都没有.
解决方案#1.5:
你没有提到它,但你可以只在构建时集成依赖项,即在源包(.orig.tar.gz,.debian.tar.gz,.dsc三元组)中,通过从PyPi下载时创建“二进制”包(.deb). pip安装的说明将进入debian / rules(注意小写debian,而不是二进制包),并在发出debuild或dpkg-buildpackage时执行.
这是#1和#3之间的中间地带.它减轻了(但没有解决!)#3的一些问题:至少你可以检查最终产品,而.deb在安装时不需要访问互联网.所有风险和负担都从最终用户转移到包维护者.但是,它与#1具有相同的问题,因为它绕过了大多数包装系统基础设施.毕竟,处理依赖关系(版本,更新,要求,冲突)是为什么首先创建dpkg / apt!
内容总结
以上是互联网集市为您收集整理的包管理 – Debian包如何从PyPI安装Python模块全部内容,希望文章能够帮你解决包管理 – Debian包如何从PyPI安装Python模块所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。