簡體   English   中英

在mac osx lion中安裝MatplotLib

[英]Installing MatplotLib in mac osx lion

我試圖在Mac OSX Lion中安裝matplotlib。 試圖使用sourcefourge站點中的二進制文件,但我得到了這個錯誤:“matplotlib需要安裝System Python 2.7”。

我去了終端並輸入了python --version並檢查了要求。

在此之后我嘗試使用pip,並且這樣做é得到以下錯誤:

“src / _image.cpp:908:錯誤:無效使用不完整類型'struct png_info_def'”

你能告訴我如何安裝它的線索嗎?

非常感謝。

編輯:我找到了一種方法,無需安裝新版本的python:

http://the.taoofmac.com/space/blog/2011/07/24/2222

這是因為libpng v1.5(包含在Mac OSX Lion中)的API發生了變化。 這些更改已經被推送到上游,因此您需要從上游存儲庫進行編譯,直到下一個版本。

您可以按照http://jholewinski.wordpress.com/2011/07/21/installing-matplotlib-on-os-x-10-7-with-homebrew/上的說明進行操作。

我按照這個頁面的說明進行操作 我被卡住了

pip install -e git+https://github.com/matplotlib/matplotlib#egg=matplotlib-dev

然后我做了:

git clone https://github.com/matplotlib/matplotlib.git
cd matplotlib
python setup.py build
python setup.py install

通過鍵入終端檢查我的安裝:

python
import matplotlib
print matplotlib.__version__
print matplotlib.__file__

我得到版本0.10.0 dev(截至本文撰寫時)和路徑/ usr / local / Cellar / ...

你可以嘗試使用“官方”python發行版,蘋果可能已經調整了提供的版本。 你可以在這里找到2.7: http//www.python.org/download/你可能不得不重新安裝numpy以及后續詞: http//sourceforge.net/projects/numpy/files/NumPy/1.6.1 /

我建議安裝scipy以便讓我知道它是否有效;)

我建議使用macports ,它應該處理依賴關系,並且將獨立於系統python版本。

編輯 :只是一些澄清,考慮到對這個答案的評論。

為什么要使用macports(或其他安裝程序)? 因為它們負責依賴,提供卸載和在版本之間切換的功能(我已經成功地將后者用於gcc和python)。 並且因為默認安裝位置不是系統可執行位置。 覆蓋系統python可能會破壞依賴它的應用程序(在許多Linux發行版中都是如此,在mac OS X上可能更​​少)。

什么時候特別有用? 當你想安裝在與python不同的python版本之上時,以及你有非python擴展(C,C ++,Fortran ......)時。

什么是不好的一面? 正如@Trond在評論中提到的那樣,如果您對包的默認編譯沒有問題,那就太好了。 您沒有像從源構建時那樣處理配置或編譯器標志。

macports的一個很好的替代品就是fink ,這似乎可以讓你獲得更多的控制權(從源代碼構建)。 我不確定它是否完全適用於mac OS X Lion。

我知道這將花費更多的時間,但我會建議從源代碼安裝python,numpy和matplotlib,以確保您的系統具有一致性。 從錯誤中可能看起來你有libPNG支持的問題。 我寫了一篇“ 如何在Mac OSX上安裝python開發工具 ”,你可能會發現它很有用。 它包含如何安裝python,numpy,matplotlib和所有必要依賴項的說明。 我知道你正在使用Python 2.7,我列出的方向是針對Python 2.6.5,但它將是相同的方法。 希望你能開始工作。

您可以安裝Python 2.6版本的Matplotlib,假設Lion2中包含Python2.6(py2.5和2.6包含在Mac OS 10.6“Snow Leopard”中 - 嘗試輸入python2.6以查明是否安裝了該版本)。

在MacPorts上,您可以通過以下方式執行此操作:

sudo port install py26-matplotlib

其中py26 -...(或py25 -...,py27 -...等)表示它的用途是哪個python版本。 (檢查托盤/端口列表以獲取正確的包名稱,以防我猜錯了)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM