pyenv下使用python matplotlib模塊的問題解決

錯誤信息

先來描述一下我遇到的問題,在進行matplotlib學習時,plot.show()老是沒法成功運行,老是會報一個錯:html

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

其實意思很簡單,就是我用的python並非一個做爲系統框架存在的,由於我爲了方便管理python的版本,選擇了pyenv這個管理工具,是一個獨立出來的python環境。linux

嘗試解決無果

參考網上衆多的解決方法,例如如下兩個最多見的:bash

方法一: 添加以下兩行 代碼解決:app

>>> import matplotlib
>>> matplotlib.use('TkAgg')
##在import matplotlib下的模塊,如pyplot等以前添加上面2句
>>> import matplotlib.pyplot as plt
複製代碼

方法二: 添加一下matplotlib的配置:框架

echo "backend: TkAgg" >> ~/.matplotlib/matplotlibrc
複製代碼

然而,以上這兩種解決方式都***沒法解決個人問題***,此時出現了第二個錯誤:工具

No module named '_tkinter'學習

說是找不到tkinter這個模塊,找了網上大多數方法,全都是linux系統下的解決方案,我真的很好奇沒有一個使用mac的用戶出現我這樣的問題嗎? 究其緣由,是由於,使用pyenv獨立安裝出來的python中並無tkinter這個模塊,因而嘗試直接安裝tkinter,結果居然提示沒有發現tkinter包!ui

pip3 install tkinter
Collecting tkinter
Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter
複製代碼

來到這,我不由陷入了深深的思考,這個tkinter究竟是何方神聖,去了Python社區:docs.python.org/3/library/t…,這才懂了他是啥玩意:spa

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 接口項,以利於迅速進行高級應用程序開發。

那麼究竟去哪安裝這個tkinter包,說實話到如今我也不知道如何利用pyenv去安裝tkinter,那這個問題又該怎麼解決呢?

曲線救國

既然tkinter這個GUI庫沒用,那換個庫是否是就行了呢?結果的確和我想的同樣,在我換了一個GUI庫以後,他的確成功了。 具體操做以下: 在出現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的話,你就須要執行

brew install pyqt
複製代碼

而後在執行

pip install PyQt5
複製代碼

這時候在運行你的代碼就能夠了。

相關文章
相關標籤/搜索