Ich versuche, ein Python-Paket zu erstellen, und ich habe eine Verzeichnisstruktur wie folgt aus:MANIFEST.in, package_data und data_files Klärung?
mypkg/
├── __init__.py
├── module1
│ ├── x.py
│ ├── y.py
│ └── z.txt
└── module2
├── a.py
└── b.py
Dann alles, was ich hinzugefügt, um die Dateien in MANIFEST.in
und wenn ich das erstellte Archiv überprüfen, hatte es alle Dateien.
Wenn ich python setup.py install
in der dist-packages/mypkg/module1
. Ich sehe nur die Python-Dateien und nicht z.txt
.
Ich habe z.txt
sowohl in MANIFEST.in
und setup.py
:
setup (
packages = [
'mypkg',
'mypkg.module1',
'mypkg.module2',
],
package_data = {
'mypkg': ['module1/z.txt']
},
include_package_data = True,
...
)
Ich habe versucht, auch die Datei als data_files
Hinzufügen sondern dass ein Verzeichnis in /usr/local
erstellt. Ich möchte es im Quellcodeverzeichnis behalten, da der Code diese Daten verwendet.
Ich habe die unten aufgelisteten Posts gelesen, aber ich werde immer verwirrt darüber, was der richtige Weg ist, z.txt
an der richtigen Stelle nach setup.py install
zu halten.
- 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-/
Update: Es wurde behoben, als ich begann mit setuptools statt distutils.core. Ich denke, es war ein Problem mit Distutils, die nicht mit Manifest einverstanden waren, während setuptools ohne Änderungen im Code funktionierte. Ich empfehle in Zukunft setuptools zu verwenden. Verwenden Sie den Link [hier] [1]. [1]: http://peak.telecommunity.com/DevCenter/setuptools#developer-s-guide – Sourabh