2012-07-02 49 views
1

我的系統:Mac OS X 10.6.8,GCC 4.2,Python 2.7版時,Xcode 3.2.3可以導入objc模塊在Python 2.6而不是在蟒蛇2.7

我使用Python 2.7和我有錯誤,當試圖做:,它返回:ImportError: No module named objc

它看起來像objc模塊不存在。但實際上我已經安裝了objc模塊。 Snow Leopard已經安裝了pyobjc,我也使用python2.6(我的Mac上有python 2.7和2.6)進行了檢查。因此,如果我使用python2.6調用,我沒有發現錯誤,這意味着objc存在,我可以使用該模塊沒有問題...但如果我使用python 2.7導入,我會得到ImportError: No module named objc錯誤。

有沒有人有任何解決方案?僅供參考,python2.6預裝OS X,而手動安裝2.7。我一直在使用2.7幾個月沒有問題。

+0

[名爲objc無模塊]的可能重複(http://stackoverflow.com/questions/4678186/no-module -named-objc) –

回答

4

Python C擴展模塊如objc不能在python版本之間重新使用。您需要單獨安裝objc模塊。

通常,不同的python安裝(例如2.6或2.7或3.2)使用不同的模塊導入位置,並且您通常會根據 python安裝安裝擴展

2

一般而言,安裝有一個python安裝的軟件包不能用於其他python安裝。您可以通過與sys.path(或通過在您的環境中設置PYTHONPATH)並將模塊安裝到普通位置來使它們可用,但是,正如@MartijnPieters所指出的,如果它是C擴展名,爲python 2.7構建模塊(然後你不能把它放在一個普通的地方)。

<sudo> python2.6 setup.py install #install for python 2.6 
<sudo> python2.7 setup.py install #install for python 2.7 

因爲該命令python通常只是一個(軟)鏈接到您的首選Python安裝:通常情況下,因爲這是那麼容易。

sudo可能需要也可能不需要,具體取決於您的python實現在您的路徑中的位置。

這也適用於純Python模塊。由於源代碼通常不會佔用太多空間,因此如果要在python 2.6和python 2.7之間來回切換,這可能是安裝所有模塊的好方法。

同樣的事情會發生,如果你正在使用easy_install來安裝包:

easy_install-2.6 somepackage 
easy_install-2.7 somepackage 
+0

在終端中,當我鍵入python時,它顯示2.7.2。如何檢查在mac上預安裝的其他python版本 – imp