wie, Eric dazu bringen umlaute im Dateipfad zu akzeptieren?

Probleme bei der Installation?
Antworten
Benutzeravatar
Alexa
User
Beiträge: 7
Registriert: Mittwoch 6. August 2014, 04:46

Hallo

Ich würde gerne wissen, ob es möglich ist Eric so zu konfigurieren, das man Python Skripte ausführen kann, in deren Dateipfad umlaute vorkommen?

Es geht mir dabei um Eric 5.4.6 unter Windows 7 64bit und mit Python 2.7.6.1

Noch mal beispielhaft zur Verdeutlichung:

Das Skript „C:\Tom\Beispiel.py“ mit Eric und Python 2.x zu starten, geht ohne Probleme.
Das Skript „C:\Jörg\Beispiel.py“ mit Eric und Python 3.x zu starten, geht ohne Probleme.
Aber das Skript „C:\Jörg\Beispiel.py“ mit Eric und Python 2.x zu starten, geht nicht.

Hoffe hier kennt sich jemand gut genug mit Eric aus um mir helfen zu können, denn leider sind die umlaute im Pfad notwendig.

Liebe Grüße Alexa
BM-NBVcUMV3CqbUX8hc3RYZFEpyq8hVXHQ5
Benutzeravatar
Alexa
User
Beiträge: 7
Registriert: Mittwoch 6. August 2014, 04:46

Ich kann wohl noch nicht Editieren.

Wollte was hinzufügen was ich gestern vergessen habe und zwar die Fehlermeldung die mir Eric ausspuckt:

UnicodeEncodeError: 'ascii' codec can't encode character '\xf6' in position 4: ordinal not in range(128)

Wobei das xf6 offensichtlich für das ö im Dateipfad steht.

Und Falz das relevant ist, im Beispiel.py Skript selbst steht nur:

Print("hallo Welt")
Input()
BM-NBVcUMV3CqbUX8hc3RYZFEpyq8hVXHQ5
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Das scheint ein Bug in Eric zu sein! Offenbar hantiert Eric mit Unicode-Strings und vergisst an einer Stelle explizit zu encodieren. Durch ein dann folgendes implizites Encodieren nimmt Python 2.x nämlich Ascii als Standard-Encoding an und das klappt natürlich nur, wenn in dem Unicode String *nur* Ascii konforme Zeichen enthalten sind; also eben z.B. keine Umlaute, wie bei Dir.

Fazit: Starte Python-Scripte eben manuell über eine Shell :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
Alexa
User
Beiträge: 7
Registriert: Mittwoch 6. August 2014, 04:46

Danke für deine Antwort und ja wenn ich das Skript über eine Shell starte, dann funktioniert es.
Also, schon mal gut zu wissen, dass ich keinen Fehler gemacht habe.
Meist du es mach Sinn dem Erschaffer von Eric diesen „bug“ zu melden?
BM-NBVcUMV3CqbUX8hc3RYZFEpyq8hVXHQ5
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Alexa hat geschrieben: Meist du es mach Sinn dem Erschaffer von Eric diesen „bug“ zu melden?
Keine Ahnung :K Sagen wir es so: Was kann schon passieren? Im schlimmsten Fall nix ;-)

(Ist Eric denn unabhängig von der Python-Version, oder gibt es *zwei* unterschiedliche Versionen von Eric, also eine für Python 2.x und eine für Python 3.x? In diesem Falle könnte es sein, dass der Maintainer kein Interesse mehr am Fixen für die 2er Version hat - aber wie gesagt, mache es doch ruhig!)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
Alexa
User
Beiträge: 7
Registriert: Mittwoch 6. August 2014, 04:46

Ok, dann schreib ich ihn mal an und wenn was bei raus kommt, teile ich euch das hier mit.

Und ja, Eric ist unabhängig von der Python Version, also man kann in Eric den Pfad zu beiden Versionen angeben und beim Ausführen von Skripts dann auswählen mit welcher Version man es starten möchte.

Ich würde ja auch lieber Version 3.x nehmen aber manchmal nutze ich Imports die nur die 2er Version unterstützen, deshalb…
BM-NBVcUMV3CqbUX8hc3RYZFEpyq8hVXHQ5
Antworten