【发布时间】:2020-11-11 02:48:51
【问题描述】:
我想使用this official tutorial打包我的python项目
问题是我的项目使用了 .so 外部库。当我制作一个包并将其导入随机 python 脚本时,我收到此错误:
ModuleNotFoundError: 没有名为“myExternalLib”的模块
我找不到任何关于如何将外部库添加到我的包的教程,我想我没有使用正确的关键字进行搜索。
【问题讨论】:
-
您链接的指南仅涵盖纯 Python 代码。您需要参考Packaging binary extensions 指南,鉴于该指南不完整,请参阅所有链接。有关如何完成此操作的快速示例,请参阅 this thread。
-
感谢您的指点。我发现了很多实现 C 扩展的好材料。但是在浏览了指南和所有看起来很有趣的链接之后,老实说,我没有发现任何与我的问题相关的内容。
-
我不想编译扩展。我有一个已经编译的扩展,我想告诉安装文件将它添加到包中。
-
您可以尝试使用a
MANIFEST.in文件强制包含*.so文件。由于它不是可移植的解决方案,因此不保证可以正常工作,但如果您不在乎,那么这可能会满足您的要求。 -
请注意,任何其他实际外部的
.so库文件驻留在您的包之外(例如/usr/lib/my_shared_lib.so),不支持将它们包含在任何类型的Python 包文件中的方法。
标签: python python-module