2014-10-03 73 views
2

我一直在關於如何在Python中構建實時更新圖表的YouTube課程。最初,我的程序不會運行,因爲我錯過了諸如six或dateutil這樣的重要模塊(我甚至安裝了pyparsing和pitz以避免任何進一步的挫折)。但現在,我每次運行它的時候我得到這個:UnicodeDecodeError Matplotlib

Traceback (most recent call last): 
    File "C:\Users\Jó\Desktop\Live-updating Graphs (YTBCourse).py", line 1, in <module> 
    import matplotlib as plt 
    File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 1048, in <module> 
    rcParams = rc_params() 
    File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 897, in rc_params 
    fname = matplotlib_fname() 
    File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 748, in matplotlib_fname 
    fname = os.path.join(os.getcwd(), 'matplotlibrc') 
    File "C:\Python27\lib\ntpath.py", line 108, in join 
    path += "\\" + b 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf3 in position 10: ordinal not in range(128) 

您可能會看到/紀念這個問題作爲一個重複的,但我還沒有找到「類似的問題」一節中回答這個問題。我真的不知道如何繼續下去。你能幫我解決這個問題嗎?提前致謝!

+0

它看起來像一個'matplotlib'中的錯誤。它混合了Unicode和字節串。它應該在Windows上使用Unicode文件名,即'os.getcwdu()'。嘗試Python 3對Unicode和字節的混合更嚴格(因此即使在純ASCII文件名上也會顯示錯誤)。 – jfs 2014-10-03 11:56:17

+0

我認爲這是固定的1.4.x和主。 – tacaswell 2014-10-03 23:53:50

+0

請參閱https://github.com/matplotlib/matplotlib/pull/3487 – tacaswell 2014-10-03 23:55:10

回答

0

我看到你使用的目錄中包含特殊字符ó

最簡單的方法是重命名目錄。一些東西到C:\Users\Jo\Desktop而不是C:\Users\Jó\Desktop。或者將Python文件存儲在別的地方。

正如您從錯誤中看到的那樣,os.getcwd()獲取當前目錄並添加到路徑中。現在,在目錄路徑中,您具有特殊字符,而解釋器的默認ASCII源代碼編碼無法理解這些特殊字符。

+0

是否可以重命名用戶的目錄而不影響計算機的所有其他軟件? – clemtoy 2015-07-20 18:58:44

0

問題是您的用戶名,它包含一個非ascii字符。

我的一個朋友有同樣的問題,因爲他的用戶名是「羅馬」。

感謝微軟幾乎不存在的unicode支持。