MANIFEST.in,package_data和data_files澄清?

时间:2013-01-20 06:45:05

标签: python setuptools distutils

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

mypkg/
├── __init__.py
├── module1
│   ├── x.py
│   ├── y.py
│   └── z.txt
└── module2
    ├── a.py
    └── b.py

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

当我在python setup.py installdist-packages/mypkg/module1时。我只看到Python文件而不是z.txt

z.txtMANIFEST.in都有setup.py

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

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

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

2 个答案:

答案 0 :(得分:13)

尝试使用setuptools而不是distutils。

答案 1 :(得分:2)

更新:当我开始使用setuptools而不是distutils.core时,它已得到修复。我认为这是一个问题,distutils不同意清单,而setuptools工作没有任何代码更改。我建议将来使用setuptools。使用链接here : setup tools- developers guide