[Python-de] Applikationsdateien installieren

Marcus von Appen mva at sysfault.org
Mon Jun 26 20:13:35 CEST 2006


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
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 187 bytes
Beschreibung: nicht verfügbar
URL         : http://python.net/pipermail/python-de/attachments/20060626/def75520/attachment.pgp