GUI用的套件是wxpython,可惜當 import wx 時,Python都會出現錯誤,回應說找不到module,一直重裝都是這樣,到發覺一件奇怪的事:用 which python 指令找到的不是Mac/Lib/Python2.7,而是指向一條Anaconda的路徑。
$ which python
/Users/ryanli/anaconda/bin/python
查一下Anaconda 知道它是Python的一個distirbution, 內帶的很多套件對科學計算方便,如numpy 等,應該是我之前安裝過Anaconda。賞試方向改為如何在Anaconda distribution的環境中安裝wxpython。Anaconda 附帶的套件管理工具是conda,以下指令比較有用
$ conda info -e #查看已建立的environment
$ conda create -n bunnies biopython #建立名為"bunnies"的env, install "biopython" program
$ conda remove -n bunnies --all #刪除名為"bunnies"的env,
$ source activate bunnies #activate "bunnies" environment
$ source deactivate #deactivate
$ conda update conda #更新Conda本身
$ conda list #查看現有的套件
$ conda search wxpython #當中是否有wxpython?
$ conda install wxpython #未有就安裝下來吧
http://conda.pydata.org/docs/test-drive.html http://conda.pydata.org/docs/_downloads/conda-cheatsheet.pdf
為使用中的python安裝了wxpython後,import wx 成功了,可以試一下以下的指令,
$ import wx
$ app = wx.App()
This program needs access to the screen.
Please run with a Framework build of python, and only when you are
logged in on the main display of your Mac.
怎麼又有問題了!? 這裡有個詳細的解答 http://wiki.wxpython.org/wxPythonVirtualenvOnMac ,permission的問題,可以將以下內容復製下來,另存成可執行的指令檔"fwpy",放在anaconda/bin,需要時用fwpy代替python
$ fwpy
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
$ python
Python 2.7.11 |Anaconda 2.3.0 (x86_64)| (default, Dec 6 2015, 18:57:58)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
不過還有問題,這方法只是以fwpy調用電腦本身的Python,但我本身的Python沒有安裝matplotlib,所以.....還是未能順利使用。(=.=)"......
想到以下方法,暫時傾向2),希望解決到吧。
1) 用電腦上的Python,把所有套件安裝好。 (擔心給我弄壞...)
2) 用Anaconda Distribution (好處是確保現有的套件可以繼續使用,但要繼續找方法弄GUI)
3) 找Tkinter等其他GUI套件
解法一不推薦,macOS 包的 Python 最好不要動它。
回覆刪除解法二行不通,還是會出現「This program needs access to the screen…」
解法三不知道
解法四,用 Python3 + WxPython Phoenix,但是不能用 Anaconda 的懶人包,因為有 Bug,還是會出現「This program needs access to the screen…」,推薦用 ActivePython 的懶人包。