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: [...]
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:
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:
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:
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: [...]
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:
setuptools duerfen es prinzipiell schon sein, da ja auch funktionierende eggs rauskommen sollen.
Ich hab keine MANIFEST Datei.
Mal schauen.
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

On, Mon Jun 26, 2006, Andreas Pakulat wrote: [...]
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:
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:
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:
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: [...]
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:
setuptools duerfen es prinzipiell schon sein, da ja auch funktionierende eggs rauskommen sollen.
Ich hab keine MANIFEST Datei.
Mal schauen.
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