我想創建一個Python包,我有這樣的目錄結構:MANIFEST.in,package_data和data_files的說明?
mypkg/
├── __init__.py
├── module1
│ ├── x.py
│ ├── y.py
│ └── z.txt
└── module2
├── a.py
└── b.py
然後,我添加的所有文件MANIFEST.in
當我檢查創建的存檔,它把所有的文件。
當我做python setup.py install
在dist-packages/mypkg/module1
。我只看到Python文件,而不是z.txt
。
我z.txt
兩個MANIFEST.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
後正確的位置。
- MANIFEST.in ignored on "python setup.py install" - no data files installed?
- Installing data files into site-packages with setup.py
- http://blog.codekills.net/2011/07/15/lies,-more-lies-and-python-packaging-documentation-on--package_data-/
更新: 當我開始使用setuptools而不是distutils.core時,它得到了修復。我認爲distutils沒有同意顯示時出現了一些問題,而setuptools在沒有任何代碼更改的情況下工作。 我推薦將來使用setuptools。使用鏈接[這裏] [1]。 [1]:http://peak.telecommunity.com/DevCenter/setuptools#developer-s-guide – Sourabh