Datei für nicht aus

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
plotty
User
Beiträge: 3
Registriert: Donnerstag 11. Dezember 2014, 01:32

Hallo zusammen,

ich neu hier im Forum und auch noch unsicher im Umgang mit Python. Bitte entschuldigt, wenn ich mich hier im falschen Forum befinde.

Ich nutze Windows 8 als Betriebssystem. Als Distribution habe ich Anaconda installiert.

Mein Problem:
Immer wenn ich eine eigene Datei schreibe, in der ich plotten möchte, werden Fehler geworfen. Zum Beispiel dieses Programm:

Code: Alles auswählen

from pylab import *

x = linspace(0, 5, 10)
y = x ** 2

figure()

subplot(1,2,1)
plot(x, y, 'r--')
xlabel('x')
ylabel('y')
title('title')

subplot(1,2,2)
plot(y, x, 'g*-')

show()
Traceback (most recent call last):[Decode error - output not utf-8]
from pylab import *
File "C:\Users\User\Anaconda\lib\site-packages\pylab.py", line 1, in <module>
from matplotlib.pylab import *
File "C:\Users\User\Anaconda\lib\site-packages\matplotlib\__init__.py", line 1048, in <module>
rcParams = rc_params()
File "C:\Users\User\Anaconda\lib\site-packages\matplotlib\__init__.py", line 897, in rc_params
fname = matplotlib_fname()
File "C:\Users\User\Anaconda\lib\site-packages\matplotlib\__init__.py", line 748, in matplotlib_fname
fname = os.path.join(os.getcwd(), 'matplotlibrc')
File "C:\Users\User\Anaconda\lib\ntpath.py", line 84, in join
result_path = result_path + p_path
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 30: ordinal not in range(128)

Ich habe schon alles Mögliche versucht. Ich programmiere in letzter Zeit gerne mit Sublime. Wenn ich den Code dort versuche zu kompilieren folgt der Fehler. Wenn ich den Code von der Windows console öffne folgt der Fehler. Nur wenn ich das Programm in Spyder ausführe klappt es.

Das Witzige dabei ist, dass ein Freund von mir den gleichen Code geschrieben hat. Wen ich seine Datei nehme und kompiliere funktioniert es, sowohl in Sublime, als auch über WinCMD.
Ich habe auch versucht seinen Code zu kopieren und in eine neue Datei einzufügen, doch das klappt auch nicht. Nur seine Dateien funktionieren auf diese Weise.

Der ein oder andere wird sich womöglich Fragen, wo eigentlich das Problem sei, es stehe doch alles da. Leider werde ich aus den Fehlern nicht schlau.

Habt ihr ähnliche Probleme gehabt? Habt ihr Ideen, was ich machen könnte?

Vielen Dank im Voraus für eure Hilfe.

Viele Grüße
plotty
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@plotty: Das Problem kommt daher, dass Du in Deinem Pfad Umlaute oder ähnliche Sonderzeichen hast. Statt getcwdu wird aber getcwd verwendet, obwohl matplotlib ansonsten Unicode-Strings benutzt. Also ein Bug in matplotlib (die neuste matplotlib-Version hat den Fehler schon nicht mehr). Dir bleibt im Moment da nichts anderes übrig als das Programm aus einem Pfad ohne Umlaute aufzurufen.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Folgendes könnte helfen:
Matplotlib legt in Deinen Benutzerdaten ein Verzeichnis .matplotlib an um dort Daten zu cachen (Fonts und LaTeX Kram), Windows7: "C:\Benutzer\[Dein Benutzername]\.matplotlib" . Dieser Cache ist zwischen bestimmten Matplotlib Versionen inkompatibel und führt zu schwer interpretierbaren Fehlermeldungen. Lösche diesen Cache, d.h. das .matplotlib Verzeichnis. Matplotlib legt beim nächsten Aufruf dann einen neuen Cache an. Wenn Du aber weiterhin mit verschiedenen Matplotlib-Versionen auf dem selben Rechner arbeitest, dann wird der Fehler immer wieder auftreten, d.h. Du musst das Cache-Verzeichnis immer wieder löschen.
a fool with a tool is still a fool, www.magben.de, YouTube
plotty
User
Beiträge: 3
Registriert: Donnerstag 11. Dezember 2014, 01:32

Hallo,

zuerst vielen Dank, für eure Hilfe. Leider hat mir der zweite Vorschlag mit dem Löschen des .matplotlib-Ordners nicht geholfen.

Ist es möglich matplotlib zu aktualisieren?
Wie schon erwähnt habe ich Anaconda installiert. Meine matplotlib-Version habe ich schon geprügt und ist 1.4.0. Es gibt aber schon die 1.4.2. Nach einer Installationsanleitung habe ich schon geschaut. Alle verweisen auf eines der Distibutions. Bei Anaconda ist aktuell noch 1.4.0 dabei. Eine Neuinstallation lohnt sich hier also nicht.

Kennt ihr einen Weg?
Mein Betriebssystem ist Windows 8.1.

Mal wieder vielen Dank im Voraus.

Edit:
matplotlib befindet sich in dem folgenden Pfad: [mein Name hat keine Umlaute, ich heiße also nicht Käse oder so ;-)]
C:\Users\User\Anaconda\Lib\site-packages
plotty
User
Beiträge: 3
Registriert: Donnerstag 11. Dezember 2014, 01:32

Hallo nochmal,

das einfachte war wohl den Ordnernahmen zu ändern.
Jetzt klappt es tatsächlich.

Wenn ihr mögt, dann könnt ihr meine Fragen vom vorherigen Post gerne noch beantworten.

Vielen Dank nochmal.
Antworten