Unbuntu Mate 20.04: Python kann nach upgrade nur us-ascii Dateien lesen.

Yagharek

Lt. Junior Grade
Registriert
Aug. 2008
Beiträge
282
Erledigt, ich habe den Fehler gefunden. Ein Backslash Fehler, der unter Python in Ubuntu 16.04 immer ignoriert wurde, kam auf einmal zum tragen.

Hallo
ich habe Ubuntu Mate von 16.04 auf 20.04 aktualisiert. Jetzt habe ich das Problem, dass meine Dateien standardmäßig als us-ascii erzeugt werden:
Code:
yagharek@L380-Yoga:~$ echo 'print("hello")' > hello.py
yagharek@L380-Yoga:~$ file -i hello.py
hello.py: text/plain; charset=us-ascii
Ich habe mein System aber auf Deutsch eingestellt:
Code:
yagharek@L380-Yoga:~$ locale
LANG=de_DE.UTF-8
LANGUAGE=de_DE

Mein derzeitige Problem ist, dass Python meine Skripte nicht mehr lesen kann, da diese in utf-8 decodiert sind:
Code:
yagharek@L380-Yoga:~/Python/Funktionen$ file -i funktionen.py
funktionen.py: text/x-python; charset=utf-8
Es folgt:
Code:
>>> exec(open("/home/yagharek/Python/Funktionen/funktionen.py").read())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 12, in <module>
  File "<string>", line 30
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape
Aber Skripte, die in us-ascii decodiert sind, kann Python starten.
Code:
>>> exec(open("/home/yagharek/hello.py").read())
hello
>>>

Aber python schreibt selber, dass mein encoding utf-8 ist. Warum kann Python dann keine utf8-Dateien lesen?
Code:
>>> sys.getdefaultencoding()
'utf-8'

Nachtrag:
So einfach ist das doch nicht. Ich habe das Encoding einer Funktion geändert:
Code:
yagharek@L380-Yoga:~/Python/Funktionen$ file -i funktionenAscii.py
funktionenAcii.py: text/x-python; charset=us-ascii
Und es folgt:
Code:
>>> exec(open("/home/jochen/Python/Funktionen/funktionenAscii.py").read())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 12, in <module>
  File "<string>", line 30
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape
 
Zuletzt bearbeitet: (Gelöst)
Danke für die Antwort. Das hatte ich schon vorher getan.

Ich habe den Fehler gefunden. In einer Datei, die meine Funktionsdatei aufruft, war ein Backslash Fehler. Bisher hat Python irgendwie diesen Fehler immer nicht nur ignoriert, sondern irgendwie auch so wie ich es wollte interpretiert.
Mit dem Upgrade auf 20.04 war dies auf einmal nicht mehr so.
 
Zurück
Oben