Ich habe eine Anwendung mit Python (2.7) geschrieben. Die Struktur sieht so aus:Wie schreibe ich setup.py für diese Anwendungsstruktur?
kent$ tree myApp
myApp
|-- foo.py
|-- gui
| |-- g1.py
| |-- g2.py
| |-- g3.py
| `-- __init__.py
|-- icons
| |-- a.png
| `-- e.png
|-- logic
| |-- __init__.py
| |-- l1
| | |-- __init__.py
| | |-- la.py
| | `-- lc.py
| |-- l2
| | |-- __init__.py
| | |-- ld.py
| | `-- lf.py
| |-- logic1.py
| |-- logic2.py
| `-- logic3.py
|-- myApp.py
`-- resources
|-- x.data
`-- z.data
Jetzt ich bin ein schreiben setup.py
meine Anwendung zu verteilen. Ich bin neu in diesem Bereich. Nach dem Lesen des py doc und einigen Tests. ein paar Fragen kommen:
wie kann ich (oder sollte ich) unter
/lib/python/site-package
mein Root-Paket (myApp) verpacken?da ich in meiner py-Datei Ressourcen/Symbole nach relativem Pfad referenziere. zum Beispiel in
foo.py
könnte esicons/a.png
und ingui/g1.py
da seine../icons/e.png
und so weiter, wie ich
icons
undresources
Verzeichnis verpacken kann sein könnte?Es scheint, dass und
data_files
die beiden Verzeichnisse nicht an die richtige Stelle kopieren.ist dies der richtige Weg?
packages = [''], package_dir = {'': ''}, package_data= {'': ['icons/*.*', 'resources/*.*']},
nach der Installation, werden meine Dateien sein:
/usr/lib/python2.7/site-packages/icons/*.png /usr/lib/python2.7/site-packages/resources/*.data /usr/lib/python2.7/site-packages/gui/... /usr/lib/python2.7/site-packages/logic/...
Gibt es Problem meiner Anwendungsstruktur?
sollten diese Ressourcen/Symbole/welche Dateien zu bestimmten Python-Paket, nicht unter dem Projektstamm gehen? Damit kann ich in setup.py
package_data
verwenden, um sie an den richtigen Ort zu kopieren.
Haben Sie http://pythonhosted.org/distribute/setuptools.html#developer-s-guide lesen? Die Distributions-Dokumentation ist etwas detaillierter. –
@MartijnPieters nein, ich habe es nicht gelesen. Danke für die Verbindung. Ich bin auf dem Weg dorthin. – Kent
@MartijnPieters Ich habe den Leitfaden gelesen. vor allem der Abschnitt Non-Package DataFiles [http://pythonhosted.org/distribute/setuptools.html#id17] erwähnt, dass setuptools alle nicht-package-Daten unter ProjectRoot installiert, nicht wie distutils. das möchte ich haben. Aber es hat nicht gesagt, wie man es installiert ... oder ich habe etwas verpasst? – Kent