首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法在python脚本中嵌入依赖项?

有没有办法在python脚本中嵌入依赖项?
EN

Stack Overflow用户
提问于 2012-07-12 00:05:25
回答 2查看 24.2K关注 0票数 30

我有一个简单的脚本,它依赖于dnspython来解析区域文件。我想把这个脚本作为一个单独的.py分发,只要用户安装了2.6/2.7,他们就可以运行。我不想让用户在站点范围内安装依赖项,因为这可能会与现有的包/版本冲突,我也不希望它们与virtualenv打交道。我想知道是否有一种方法可以将dnspython之类的包嵌入到脚本(gzip/base64)中,并让该脚本在运行时访问该包。也许将其解压到/tmp中的目录中,并将其添加到sys.path中?我不关心启动开销,我只想要一个包含我可以分发的所有依赖项的.py。

此外,没有C依赖项需要构建,只有纯python包。

编辑:脚本不必是.py。只要它是一个单一的可执行文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 00:43:54

您可以将多个Python文件打包到一个.egg中。Egg文件本质上只是包含定义良好的元数据的zip归档文件-查看setuptools文档以了解如何做到这一点。根据docs,您可以通过指定入口点使egg文件可直接执行。这将为您提供一个可执行文件,该文件可以包含您的代码和任何其他依赖项。

编辑:如今,我建议构建一个pex来做这件事。pex基本上是一个具有非stdlib依赖项的可执行zip文件。它不包含python发行版(如py2app/py2exe),但包含其他所有内容,并且可以通过单个命令行调用来构建。https://pex.readthedocs.org/en/latest/

票数 12
EN

Stack Overflow用户

发布于 2012-07-12 01:03:26

最简单的方法是将名为__main__.py的python脚本与纯Python依赖项放在压缩归档example中。

否则,可以使用PyInstaller来生成独立的可执行文件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11436777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档