为什么我的某些文件在使用setuptools打包的python模块的安装中不可用?

时间:2014-01-18 21:57:46

标签: python python-2.7 pyqt4 setuptools distutils

所以我做了一个小应用程序,我通常想要打包并与世界分享。我阅读了使用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文件作为包含myappmyapp.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文件夹中看不到这些文件。我不确定原因是什么。任何人都可以帮我解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:4)

清单是关于分发,而不是关于安装。 您需要在setup.py中指定要安装的内容和WHERE:

setup(...,
  data_files=[(whereto1, [file1, file2]),
              (whereto2, [file3])]
 )

请参阅http://docs.python.org/3/distutils/setupscript.html#installing-additional-files