2011-11-30 131 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,并确保它改变。然后,只要您指向正确的目录,就应该进行设置。