Applikationsdateien installieren
Hi, ich brauch mal nen Schubs in die richtige Richtung. Ich habe eine PyQt4 Applikation die neben den Code-Dateien auch ein paar .ui-Dateien enthaelt. Diese wuerde ich gerne nach share/<appname> installieren. Soweit (IIRC) kein grosses Problem mit den setuptools, aber ich brauche in den .py-Dateien den Pfad zu den .ui-Dateien. Wie macht man das am geschicktesten? Kann mir Python helfen das richtige share-Verzeichnis zu finden? Ich brauch nur den absoluten Pfad als String. Andreas -- You have a reputation for being thoroughly reliable and trustworthy. A pity that it's totally undeserved. _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On, Mon Jun 26, 2006, Andreas Pakulat wrote: [...]
Wie macht man das am geschicktesten? Kann mir Python helfen das richtige share-Verzeichnis zu finden? Ich brauch nur den absoluten Pfad als String.
Ja, die Daten werden mittels des --install-data targets in das evtl. uebergebene Verzeichnis installiert (oder in das systemabhaengig voreingestellte). Mithilfe der "install_data" Command Instanz kann bei der Installation der Pfad herausbekommen werden. Dazu musst Du sie nur im setup() ueberschreiben. Ein kurzes Beispiel, welche Moduldateien unter lib/site-packages/<modul> abaendern kann: def adjust_paths (libdir, datadir): """ Ueberschreibe hier die Pfade in deinen zu installierenden Dateien. Achtung: Sie sind schon installiert, da install_data zuletzt laeuft, daher bekommen wir hier den absoluten Installationspfad der Module unter site-packages. """ ... class InstallData (install_data): """Angepasste install_data Klasse.""" def run (self): adjust_paths (self.get_finalized_command ("install_lib").install_dir, self.install_dir) install_data.run (self) ... setup ("name" : "Bla", ... "data_files" : ... "cmdclass" : { "install_data" : InstallData }, ) Der Vorteil des obigen Systems (wenn auch nicht unaufwendig) ist, dass auch --prefix, --home usw. ordentlich behandelt werden sollten. Gruss Marcus _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Andreas Pakulat schrieb:
Hi,
ich brauch mal nen Schubs in die richtige Richtung. Ich habe eine PyQt4 Applikation die neben den Code-Dateien auch ein paar .ui-Dateien enthaelt. Diese wuerde ich gerne nach share/<appname> installieren. Soweit (IIRC) kein grosses Problem mit den setuptools, aber ich brauche in den .py-Dateien den Pfad zu den .ui-Dateien.
Wie macht man das am geschicktesten? Kann mir Python helfen das richtige share-Verzeichnis zu finden? Ich brauch nur den absoluten Pfad als String.
Das macht man so: http://peak.telecommunity.com/DevCenter/PythonEggs#accessing-package-resourc... Vor allem im Falle eines EGGs hast du sonst wenig Schnitten. MfG Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On 26.06.06 20:28:56, Diez B. Roggisch wrote:
Andreas Pakulat schrieb:
Hi, ich brauch mal nen Schubs in die richtige Richtung. Ich habe eine PyQt4 Applikation die neben den Code-Dateien auch ein paar .ui-Dateien enthaelt. Diese wuerde ich gerne nach share/<appname> installieren. Soweit (IIRC) kein grosses Problem mit den setuptools, aber ich brauche in den .py-Dateien den Pfad zu den .ui-Dateien. Wie macht man das am geschicktesten? Kann mir Python helfen das richtige share-Verzeichnis zu finden? Ich brauch nur den absoluten Pfad als String.
Das macht man so:
http://peak.telecommunity.com/DevCenter/PythonEggs#accessing-package-resourc...
Vielen Dank schonmal, dann werd ich mal schauen wie ich meine erste Python-Applikation "paketiert" bekomme. Andreas -- Is that really YOU that is reading this? _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On 26.06.06 19:51:51, Andreas Pakulat wrote:
Hi,
ich brauch mal nen Schubs in die richtige Richtung. Ich habe eine PyQt4 Applikation die neben den Code-Dateien auch ein paar .ui-Dateien enthaelt. Diese wuerde ich gerne nach share/<appname> installieren. Soweit (IIRC) kein grosses Problem mit den setuptools, aber ich brauche in den .py-Dateien den Pfad zu den .ui-Dateien.
Wie macht man das am geschicktesten? Kann mir Python helfen das richtige share-Verzeichnis zu finden? Ich brauch nur den absoluten Pfad als String.
Ich waerme das ganze nochmal auf, da mir das mit den setuptools so nicht gefaellt. Also etwas veraenderte Frage: Wie installiere ich im Zusammenspiel mit setuptools Datendateien wie .ui-Dateien oder Uebersetzungsdateien. Moeglichst "wahlweise" im egg oder in <PYTHONPREFIX>/share/<applikation>/? Und wie bekomme ich im Code dann den Pfad zu den .ui-Dateien heraus? Andreas -- Your motives for doing whatever good deed you may have in mind will be misinterpreted by somebody. _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On, Tue Jun 27, 2006, Andreas Pakulat wrote: [...]
Ich waerme das ganze nochmal auf, da mir das mit den setuptools so nicht gefaellt.
Also etwas veraenderte Frage: Wie installiere ich im Zusammenspiel mit setuptools Datendateien wie .ui-Dateien oder Uebersetzungsdateien.
Moeglichst "wahlweise" im egg oder in <PYTHONPREFIX>/share/<applikation>/? Und wie bekomme ich im Code dann den Pfad zu den .ui-Dateien heraus?
Siehe mein vorheriger Post dazu. Dieser hat mit den setuptools nichts zu tun, garantiert aber, dass der normale Installationsweg laeuft. Hast Du fuer das ui-Verzeichnis, welches offenkundig kein Modul ist, denn auch einen Eintrag in der MANIFEST-Datei angegeben, damit beim Bau des Pakets das Verzeichnis kopiert wird? Beispiel fuer eine MANIFEST.in Datei, die alle .ui-Dateien aus dem Verzeichnis ui/ inkludiert: recursive-include ui *.ui Des weiteren ist package_data der falsche Eintrag, da der nur fuer Packages/Module vorgesehen ist und auch erst seit Python 2.4 existiert. Nimm daher lieber "data_files". Gruss Marcus _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On 27.06.06 18:09:25, Marcus von Appen wrote:
On, Tue Jun 27, 2006, Andreas Pakulat wrote:
[...]
Ich waerme das ganze nochmal auf, da mir das mit den setuptools so nicht gefaellt.
Also etwas veraenderte Frage: Wie installiere ich im Zusammenspiel mit setuptools Datendateien wie .ui-Dateien oder Uebersetzungsdateien.
Moeglichst "wahlweise" im egg oder in <PYTHONPREFIX>/share/<applikation>/? Und wie bekomme ich im Code dann den Pfad zu den .ui-Dateien heraus?
Siehe mein vorheriger Post dazu. Dieser hat mit den setuptools nichts zu tun, garantiert aber, dass der normale Installationsweg laeuft.
setuptools duerfen es prinzipiell schon sein, da ja auch funktionierende eggs rauskommen sollen.
Hast Du fuer das ui-Verzeichnis, welches offenkundig kein Modul ist, denn auch einen Eintrag in der MANIFEST-Datei angegeben, damit beim Bau des Pakets das Verzeichnis kopiert wird?
Ich hab keine MANIFEST Datei.
Beispiel fuer eine MANIFEST.in Datei, die alle .ui-Dateien aus dem Verzeichnis ui/ inkludiert:
recursive-include ui *.ui
Mal schauen.
Des weiteren ist package_data der falsche Eintrag, da der nur fuer Packages/Module vorgesehen ist und auch erst seit Python 2.4 existiert. Nimm daher lieber "data_files".
Laut setuptools-Homepage soll man das eben grade nicht. Ausserdem wird package_data in den setuptools unterstuetzt, nur distutils koennen das erst mit Python 2.4... Andreas -- Cheer Up! Things are getting worse at a slower rate. _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (3)
-
Andreas Pakulat
-
Diez B. Roggisch
-
Marcus von Appen