2011-11-30 206 views
1

我已經安裝了一些可以使用IDLE而不是通過命令shell窗口訪問的python軟件包。在命令提示符下導入python模塊的問題

下面是空閒的輸出:

Python 2.7.2+ (default, Oct 4 2011, 20:03:08) 
[GCC 4.6.1] on linux2 
Type "copyright", "credits" or "license()" for more information. 
==== No Subprocess ==== 
>>> import whoosh 

這是從我的終端輸出:

[email protected]:~$ python 
Python 2.7.2 (default, Nov 28 2011, 23:56:33) 
[GCC 4.6.1] on linux3 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import whoosh 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named whoosh 

我怎麼能點終端蟒蛇IDLE Python包?爲什麼終端顯示「linux3」,IDLE顯示'linux2'?請幫我解決這個問題。謝謝。

UPDATE1:

感謝所有。就像大多數人猜測的一樣,我安裝了兩個不同的版本。

我的空閒路徑顯示

['/home/pradeep', '/usr/bin', '/usr/local/lib/python2.7/dist-packages/Whoosh-2.3.0-py2.7.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/ubuntuone-client', '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel', '/usr/lib/python2.7/dist-packages/ubuntuone-couch', '/usr/lib/python2.7/dist-packages/ubuntuone-installer', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol'] 

我終端路徑顯示:

['', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux3', '/usr/local/lib/python2.7/lib-tk', '/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages'] 

如何刪除終端版本和終端安裝IDLE版本?謝謝。

+0

你可以嘗試導出PYTHONPATH指向哪裏安裝whoosh也檢查你的LD_LIBRARY_PATH – avasal

回答

2

您正在運行兩種不同的Python安裝,一種日期爲10/4/2011,另一種日期爲2011年11月28日。第二個沒有安裝whoosh

的選項有:

  1. 查找閒置用途和命令行運行它的版本。要找到它,請打開IDLE並運行import sys; print sys.executable。這會告訴你安裝軟件包的版本的位置。軟件包被搜查

  2. 或者您也可以通過在命令行安裝這些相同的包(即運行python setup.py install爲要加載的各種包牛肉你的命令行版本。

2

在Python路徑中定義的所有目錄

所以,如果IDLEterminal正在不同。 - 意味着他們在他們的蟒蛇路徑差異

所以,

試試這個:(在空閒的和終端)

import sys 
print sys.path # this prints the list of directories in the python path. 

與此相比,你可以同時領取並IDLE額外的目錄將有whoosh

您可以像目錄添加到sys.path列表這個:

import sys 
sys.path.append('/home/user/packages') 

現在,所有在/home/user/packages的軟件包都可以導入。

+0

這通常發生在你有不同的python安裝,所以不同的'sys.path'和當你安裝一個新的軟件包安裝到一個你的python安裝。 –

+0

這個工程,但只是暫時的(以我的經驗)。設置PYTHONPATH將使終端始終有可用的模塊。 – Jon

+0

我知道這樣會更好 - 但通過這個我想讓他看看是什麼導致了這個問題。 –

1

您需要確保PYTHONPATH已在您的~/.profile/usr/<user-name>/.profile中正確設置。

例如(這是OS X,但只找到其中​​Python是安裝在機器上):

export PYTHONPATH="/usr/local/lib/python2.7/site-package/:$PYTHONPATH" 

只有OS X需要出口前綴,並且可以在使用echo $PYTHONPATH檢查當前的路徑終奌站。

一旦你改變PYTHONPATH指向你的python的包文件夾的版本,你需要強制終端使用升級的路徑:

source ~/.profile 

然後再次嘗試echo $PYTHONPATH,並確保它改變。然後,只要您指向正確的目錄,就應該進行設置。