2016-09-11 67 views
0

我們正在構建我們想在Python 2上運行的代碼& 3.它使用matplotlib。我的本地機器運行OS X Yosemite。在Mac OS X上支持python 2和python 3的matplotlib

matplotlib installation documentation提供了python 2 & 3的使用說明,但暗示兩者在一臺Mac上都不支持。這是真的,如果不是兩者都可以用matplotlib支持? (另外,我知道可以使用虛擬環境或機器進行單獨的安裝,但是我發現在Mac上這些很麻煩,另一方面,我也測試了基於商業雲構建的構建。使用單獨的虛擬機的每個配置,其效果相當好測試儀)

+1

'但暗示兩者都不能在一臺Mac上支持 - 你能引用你發現的那個段落嗎? – cel

+0

使用miniconda進行環境管理。安裝和使用非常簡單,您可以創建Py2和Py3環境。你當然可以在同一臺Mac上有2和3的matplotlib,我有這個原因,我正在開發一個依賴於matplotlib的Python庫,它支持Python版本 – Edu

+0

@cel:「or(Python 3)」中的'or'帶有這種含義。 – Arthur

回答

0

這似乎工作:

蟒3:安裝https://www.python.org/ftp/python/3.5.2/python-3.5.2-macosx10.6.pkg

curl -O https://bootstrap.pypa.io/get-pip.py 
python3 get-pip.py 
pip3 install nose 
pip3 install matplotlib 
pip3 install cobra 
pip3 install numpy 
pip3 install scipy 
pip3 install openpyxl 
pip3 install future 
pip3 install recordtype 
pip3 install lxml 
pip3 install python-libsbml 

蟒2:安裝https://www.python.org/ftp/python/2.7.12/python-2.7.12-macosx10.6.pkg

curl -O https://bootstrap.pypa.io/get-pip.py 
python get-pip.py 
sudo pip2 install nose 
sudo pip2 install matplotlib 
sudo pip2 install cobra 
sudo pip2 install numpy 
sudo pip2 install scipy 
sudo pip2 install openpyxl 
sudo pip2 install future 
sudo pip2 install recordtype 
sudo pip2 install lxml 
sudo pip2 install python-libsbml 
sudo pip2 uninstall python-dateutil  # deal with bug in six; see http://stackoverflow.com/a/27634264/509882 
sudo pip2 install python-dateutil==2.2 
+0

我真的不推薦''sudo pip install'',除非你真的*知道你在做什麼。這樣做可以修改操作系統的root python安裝包。在OSX和一些Linux發行版中,操作系統依賴於Python,更改軟件包可能會破壞操作系統本身的某些部分。更好的辦法是使用virtualenvs或(正如我上面提到的)conda-envs。 – jakevdp

1

我也發現virtualenvs惱人這樣的事情,並在OSX與特別matplotlib virutalenvs遇到了奇怪的問題。 但是有一個非常好的工具來支持不同包的並行安裝& python版本:conda。它將用任何Python版本管理並行環境;對於你的情況,你可以做到以下幾點:

  1. 安裝miniconda

  2. 創建Python 3環境:conda create -n py3env python=3.5 matplotlib

  3. 創建Python 2環境:conda create -n py2env python=2.7 matplotlib

  4. 激活一個你想要的,例如source activate py2env

你準備好了。有關conda環境的更多信息,請參閱conda-env docs