[Mac] 在 python 中可以匯入的模組,在 ipython 中無法匯入?

[Mac] 在 python 中可以匯入的模組,在 ipython 中無法匯入?

最近用 pip 裝好了 yappi 這個 profiling 的模組

用 python 來 import 沒有問題:

testuser@localhost ~ $ python
>>> import yappi
>>>

 

不過用 ipython 來 import,就說找不到:

testuser@localhost ~ $ ipython
In [1]: import yappi
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-2ae58b5c5dd8> in <module>()
----> 1 import yappi
ImportError: No module named yappi

 

覺得有點奇怪,以前從來沒有遇過這種問題…

先 import os 來看一下 os 模組各別是放在哪,結果兩邊是不一樣的:

testuser@localhost $ ipython
In [1]: import os
In [2]: os.__file__
Out[2]: '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.pyc'
testuser@localhost $ python
>>> import os
>>> os.__file__
'/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.pyc'

 

應該是因為兩邊的 python lib 的位置不一樣,所以讀到不同的模組,

因此裝到 python 那邊的 yappi,ipython 才會讀不到…

而這 /usr/local/Cellar 這目錄是 Homebrew 的專用目錄,

不知道是不是用 Homebrew 安裝 python 之後出現的問題…

 

查了一下 ipython 現在的版本,是比 pip 裡的要舊,

決定把 ipython 移掉重裝看看:

sudo pip uninstall ipython
sudo pip install ipython

 

重裝之後,os 模組的位置和 python 的一樣了,而且也可以 import yappi 模組囉:

In [1]: import os
In [2]: os.__file__
Out[2]: '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.pyc'
In [3]: import yappi
In [4]: yappi.__file__
Out[4]: '/usr/local/lib/python2.7/site-packages/yappi.pyc'

 

(本頁面已被瀏覽過 733 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料