在Python包中包含外部二进制文件
我有一个Python模块,基本上是一个大包装器(除了这个,它还做了很多其他事情),用来调用一个外部的二进制文件(不是Python写的)。我想把这些二进制文件(一个用于macOS,一个用于Linux)和我的代码一起打包。现在我在我的setup.py文件里有以下内容:
package_data={'packagename': ['lib/app-osx/*', 'lib/app-linux/*', 'lib/*.awk']},
这些文件的位置在:
/packagename
/lib
script.awk
/app-osx/
app
/app-linux
app
我好像找不到它们被安装在哪里,如果它们真的被安装了的话?这方面有没有什么约定?显然,我不能用依赖关系来处理这个问题 :(
另外,在Python脚本中,找到它们的位置的最佳方法是什么?
谢谢
2 个回答
1
我觉得 MANIFEST.in 可以解决与 Python 包相关的所有附加文件的问题。
recursive-include lib/app-osx/*
recursive-include lib/app-linux/*
recursive-include lib/*.awk
3
在Jonathon的提醒下,我查看了聊天记录,找到了Lukas给我的解决办法。这个解决办法其实很简单,就是在setup.py文件中添加以下内容:
zip_safe=False