2016-04-22 58 views
2

在Mac上正確使用Python似乎是一個持續的挑戰。我有一個自制的實施工作,現在有困難運行Jupyter除了使用sudo:在Mac上修復Python

$ which python 
/usr/local/bin/python 
$ which pip 
/Users/username/bin/pip 
$ which jupyter 
/usr/local/bin/jupyter 
$ jupyter notebook 
Traceback (most recent call last): 
    File "/usr/local/bin/jupyter", line 7, in <module> 
    from jupyter_core.command import main 
ImportError: No module named jupyter_core.command 
$ sudo jupyter notebook 
The Jupyter Notebook is running at: http://localhost:8888/ 

運行後,Jupyter無法導入大熊貓(通過pip install pandas安裝):

import pandas 
ImportError        Traceback (most recent call last) 
<ipython-input-18-d6ac987968b6> in <module>() 
----> 1 import pandas 
ImportError: No module named pandas 

..甚至雖然熊貓可用(python -s 'import pandas'工作正常)。猜測它的路徑不可用於root。

我想知道Jupyter是particularly problematic或者這只是我的設置..?

感謝您的幫助,因爲這變得非常煩人。任何有關擦除python並從頭重新安裝「正確」的指導都會很方便。


編輯:

$ which virtualenv 
/usr/local/bin/virtualenv 
21:16 $ virtualenv 
Traceback (most recent call last): 
    File "/usr/local/bin/virtualenv", line 7, in <module> 
    from virtualenv import main 
ImportError: No module named virtualenv 

回答

0

停止使用python通過本地安裝上OSX或通過自制軟件現在!

用工具箱中的這兩種技術,你將永遠不會有你再次遇到的問題。

請注意pyvenvpyenv是用於實現類似的目標與不幸的是非常相似的名稱(控制/沙箱環境)兩個不同的技術。有一點需要注意的是,如果你有一點谷歌,你會看到virtualenv的舊引用。這與pyvenv一樣。

有人把這些與Jupyter一起使用的好概述:http://www.alfredo.motta.name/create-isolated-jupyter-ipython-kernels-with-pyenv-and-virtualenv/

另一種選擇是在虛擬機(或者說virtualbox)或者更好的Docker容器中完成所有的任務,但是在你掌握虛擬環境之後,無論如何你的碼頭圖像)。

+0

謝謝Ray。試過在上面安裝virtualenv和命中錯誤。任何想法? – geotheory

+0

@geotheory如果你在python3中,不要使用'virtualenv',使用'pyvenv'它可以做同樣的事情。 https://docs.python.org/3/library/venv.html – Ray

+0

這是否適用於Mac上的Python 2.7? 'pip安裝pyvenv'返回'找不到滿足要求的版本pyvenv(來自版本:)沒有找到與pyvenv匹配的發佈... – geotheory

1

什麼python是在shebang(#!)線pipjupyter?您可能已安裝jupyter,其中pip正在使用/usr/bin/python。這意味着它不在爲Homebrew的/usr/local/bin/python安裝的庫中。

您應該能夠像這樣以解決此問題:

/usr/local/bin/python $(type -p pip) install jupyter 

但總的來說我第二@使用pyenv管理一套個人的Python安裝的雷人的建議,你可以切換,獨立的系統上有什麼。 (我同樣使用Ruby的rbenv和Perl的perlbrew。)

+0

啊,一定是吧。 pip是'#!/ usr/local/opt/python/bin/python2.7',jupyter是'#!/ usr/bin/python'。 – geotheory