2013-01-20 3 views
16

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.

+0

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

Antwort

2

Update: Es wurde behoben, als ich begann mit setuptools anstelle von 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 here : setup tools- developers guide

11

Versuchen Setuptools statt distutils verwenden.

+0

Yeah setuptools behoben. Ich kommentierte die Frage, da ich nicht selbst antworten konnte. – Sourabh