py2exe Ausführungspfad ermitteln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

Hallo,

ich habe mit py2exe eine *.exe erstellt. Jetzt möchte ich zur Laufzeit den Ordnerpfad der exe festellen, in dem sich diese befindet (um hier Logdateien abzuspeichern).

Wie kann ich am schnellsten den Ordnerpfad feststellen, in dem sich die exe befindet???

danke
george
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

`sys.executable` vielleicht?
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

@birkenfeld:
sysexecutable - A string giving the name of the executable binary for the Python interpreter, on systems where this makes sense.
Er sucht aber doch den Ordner, in dem sich die mit py2exe erstellte exe-Datei befindet.

@george:
Was ergibt denn __file__ aus Deinem Hauptmodul?

MfG
HWK
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Gut zu wissen. Da hatte birkenfeld doch wieder mal recht.
MfG
HWK
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

Hallo,
@george:
Was ergibt denn __file__ aus Deinem Hauptmodul?
Das __file__ gibt den Pfad zum jeweiligen File in der library.zip.

Werde mir mal die Links von veers anschauen.

Danke und Gruss
george
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Aus meinem Projekt, das sowohl mit ``py2exe`` funktioniert als auch ohne:

Code: Alles auswählen

    def parser_dir(self):
        """Gets the path of the directory where the parsers can be found."""
        try:
            appdir = os.path.dirname(__file__)
            if '.zip' in appdir:
                # frozen exe
                appdir = os.path.dirname(sys.argv[0])
        except NameError:
            # frozen exe, so no __file__
            appdir = os.path.dirname(sys.argv[0])
        pdir = os.path.join(appdir, 'parsers')
        return pdir
Wenn du das ``pdir`` auslässt und stattdessen ``appdir`` verwendest, bist du fertig.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten