所以我做了一个小应用程序,我通常想要打包并与世界分享。我阅读了使用setuptools打包我的应用程序的教程。它一直顺利,直到我被卡在一个地方。
我的目录结构是这样的:
- MyApp
- setup.py
- README.md
- LICENSE.txt
- MANIFEST.in
- myapp
- __init__.py
- index.py
- utils
- __init__.py
- helper.py
- some_dump.pickle
- images
- folder_1
- image_1.jpg
- image_2.jpg
- folder_2
- another_image_1.jpg
- another_image_2.jpg
- sounds
- sound_1.wav
- sound_2.wav
鉴于此目录结构,我使用setup.py
选项创建了packages
文件作为包含myapp
和myapp.utils
的列表。我还创建了一个MANIFEST.in
文件,它将包含我想要打包但默认不包含的所有文件。以下是清单文件的内容:
include README.md
include LICENSE.txt
include myapp/utils/*.pickle
include myapp/utils/sounds/*.wav
include myapp/utils/images/folder_1/*.jpg
include myapp/utils/images/folder_2/*.jpg
问题是所有这些文件都是按照分发包(.zip)中的要求创建的,但是当我尝试使用分发包来尝试自己安装包时,我看不到图像,声音或泡菜文件。
即,当我运行python setup.py install
时,我在build/lib
文件夹中看不到这些文件。我不确定原因是什么。任何人都可以帮我解决这个问题吗?
由于
答案 0 :(得分:4)
清单是关于分发,而不是关于安装。
您需要在setup.py
中指定要安装的内容和WHERE:
setup(...,
data_files=[(whereto1, [file1, file2]),
(whereto2, [file3])]
)
请参阅http://docs.python.org/3/distutils/setupscript.html#installing-additional-files