MANIFEST.in,package_data和data_files澄清?

Sou*_*abh 22 python distutils setuptools

我正在尝试创建一个Python包,我有一个像这样的目录结构:

mypkg/
??? __init__.py
??? module1
?   ??? x.py
?   ??? y.py
?   ??? z.txt
??? module2
    ??? a.py
    ??? b.py
Run Code Online (Sandbox Code Playgroud)

然后我添加了所有文件MANIFEST.in,当我检查创建的存档时,它有所有文件.

当我做python setup.py install的时候dist-packages/mypkg/module1.我只看到Python文件而不是z.txt.

我有z.txt两个MANIFEST.insetup.py:

setup (
    packages = [
        'mypkg',
        'mypkg.module1',
        'mypkg.module2',
    ],
    package_data = {
        'mypkg': ['module1/z.txt']
    },
    include_package_data = True, 
    ...
)
Run Code Online (Sandbox Code Playgroud)

我尝试添加该文件,data_files但是创建了一个目录/usr/local.我想将它保存在源代码目录中,因为代码使用该数据.

我已经阅读了下面列出的帖子,但我一直对于z.txt在正确的位置之后保持正确位置的方法感到困惑setup.py install.

CJH*_*CJH 13

尝试使用setuptools而不是distutils.


Sou*_*abh 2

更新:当我开始使用 setuptools 而不是 distutils.core 时,它​​得到了修复。我认为这是 distutils 与清单不一致的问题,而 setuptools 无需对代码进行任何更改即可工作。我建议将来使用 setuptools。使用此处的链接:设置工具 - 开发人员指南