帮助解决带多个文件夹的Python setup.py问题
我正在尝试在OBS上构建我的程序。你能告诉我setup.py应该是什么样子,以便创建一个文件夹结构吗?比如说我有这样的结构:
../MyProgram
COPYING
README
mainscript.pyw
/applications
/app1
/icons
pic1.png
app1.py
/app2
/icons
pic2.png
/scripts
script1.py
script2.py
app2.py
等等。
我看过Python的文档,也试过用'package_dir'和'packages',但是OBS还是给我报错,说找不到图标文件。我猜是setup脚本没有创建这些文件。而当我在本地尝试构建一个rpm时,也遇到了同样的错误。当我查看BUILD文件夹时,发现里面没有创建'applications'文件夹,也没有任何内容。
非常感谢你的帮助。请提供一个示例。谢谢。
2 个回答
0
我在这里找到了帮助:https://wiki.python.org/moin/Distutils/Tutorial
你需要创建一个叫做 Manifest.in 的文件,里面列出你想要包含的文件:
recursive-include applications/app1/icons *.png
recursive-include applications/app2/icons *.png
5
你可以在你的 MANIFEST.in 文件中添加以下这一行:
recursive-include applications *.png
这样可以包含所有的图标。
如果你想把你的 Python 文件打包,可以像这样明确声明你的包:
setup(
packages=[
"applications",
"applications.app1",
"applications.app2",
"applications.app2.scripts",
],
data_files=[ # declare the list of data_files (destination directory, (data files))
("applications/app1/icons", ("applications/app1/icons/pic1.png",)),
("applications/app2/icons", ("applications/app2/icons/pic2.png",)),
]
.... # your other setup options (name, version...)
)
不过你需要在每个目录下放一个 __init__.py 文件,这样 Python 才会把这些目录当作包来处理。