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

为什么我的一些文件在使用setuptools打包的python模块的安装中不可用?,python,python-2.7,pyqt4,setuptools,distutils,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

因此,我制作了一个小型应用程序,我通常希望将其打包并与世界共享。我阅读了使用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
的列表。我还创建了一个
清单.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)中的要求创建的,但是当我尝试使用分发包尝试自己安装包时,我看不到图像、声音或pickle文件。 i、 e.当我运行
python setup.py install
时,在
build/lib
文件夹中看不到这些文件。我不知道原因是什么。有人能帮我解决这个问题吗


谢谢

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

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

请参见

您似乎有几个不同的问题(例如,一个关于安装资源文件,另一个关于从PyPi安装PyQt)。请将它们拆分为单独的StackOverflow问题。@pts:一般来说,这是对的,但OP会问这两个问题在包装问题中是否有共同的根本原因。第二个问题可能不是第一个问题的原因。同时,通常不在包的中间安装非代码文件;改用资源文件API。然而,IIRC(已经有一段时间了),PyQt有自己的资源文件API,而不是
setuptools
/
pkg_resources
中的API,您可能希望使用它。