先來描述一下我遇到的問題,在進行matplotlib學習時, plot.show() 總是無法成功運行,總是會報一個錯:
RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are using (Ana)Conda please install python.app and replace the use of 'python' with 'pythonw'. See 'Working with Matplotlib on OSX' in the Matplotlib FAQ for more information.
其實意思很簡單,就是我用的python并不是一個作為系統(tǒng)框架存在的,因為我為了方便管理python的版本,選擇了 pyenv 這個管理工具,是一個獨立出來的python環(huán)境。
嘗試解決無果
參考網(wǎng)上眾多的解決方法,例如以下兩個最常見的:
方法一: 添加如下兩行 代碼解決:
>>> import matplotlib>>> matplotlib.use('TkAgg')##在import matplotlib下的模塊,如pyplot等之前添加上面2句>>> import matplotlib.pyplot as plt方法二: 添加一下matplotlib的配置:
echo "backend: TkAgg" >> ~/.matplotlib/matplotlibrc
然而,以上這兩種解決方式都***無法解決我的問題***,此時出現(xiàn)了第二個錯誤:
No module named '_tkinter'
說是找不到 tkinter 這個模塊,找了網(wǎng)上大多數(shù)方法,全都是linux系統(tǒng)下的解決方案,我真的很好奇沒有一個使用mac的用戶出現(xiàn)我這樣的問題嗎? 究其原因,是因為,使用 pyenv 獨立安裝出來的python中并沒有 tkinter 這個模塊,于是嘗試直接安裝 tkinter ,結果竟然提示沒有發(fā)現(xiàn) tkinter 包!
pip3 install tkinterCollecting tkinterCould not find a version that satisfies the requirement tkinter (from versions: )No matching distribution found for tkinter
來到這,我不禁陷入了深深的思考,這個 tkinter 到底是何方神圣,去了Python社區(qū):https://docs.python.org/3/library/tkinter.html ,這才懂了他是啥玩意:
The tkinter package (“Tk interface”) is the standard Python interface to the Tk GUI toolkit. Both Tk and tkinter are available on most Unix platforms, as well as on Windows systems. (Tk itself is not part of Python; it is maintained at ActiveState.) Running python -m tkinter from the command line should open a window demonstrating a simple Tk interface, letting you know that tkinter is properly installed on your system, and also showing what version of Tcl/Tk is installed, so you can read the Tcl/Tk documentation specific to that version.
說白了, tkinter 就是一個利用python做GUI(圖形用戶界面),它提供各種標準的 GUI 接口項,以利于迅速進行高級應用程序開發(fā)。
那么究竟去哪安裝這個 tkinter 包,說實話到現(xiàn)在我也不知道如何利用 pyenv 去安裝 tkinter ,那這個問題又該怎么解決呢?
曲線救國
既然 tkinter 這個GUI庫沒用,那換個庫是不是就好了呢?結果的確和我想的一樣,在我換了一個GUI庫之后,他的確成功了。 具體操作如下: 在出現(xiàn) Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. 這個錯誤的時候,在終端輸入以下命令:
echo "backend : Qt5Agg" > ~/.matplotlib/matplotlibrc
如果提示你沒有安裝 PyQt 的話,你就需要執(zhí)行
brew install pyqt
然后在執(zhí)行
pip install PyQt5
這時候在運行你的代碼就可以了。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答
圖片精選