命令promp中的python模块导入问题

2024-09-28 22:22:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经安装了一些python包,我可以使用IDLE而不是通过command shell窗口访问它们。

以下是空闲时的输出:

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

这是我终端的输出:

pradeep@ubuntu:~$ 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

如何将终端python指向空闲python包?为什么终端显示“linux3”,而空闲显示“linux2”?请帮助我解决这个路径问题。谢谢。

更新1:

谢谢大家。像你们大多数人猜测的那样,我已经安装了两个不同的版本。

我的空闲路径显示

['/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']

如何删除终端版本并在终端中安装空闲版本?谢谢。


Tags: 路径版本终端defaultlibpackagesusrlocal
3条回答

您需要确保在~/.profile/usr/<user-name>/.profile中正确设置了PYTHONPATH

例如(这是针对OSX的,但只需查找机器上安装Python的位置即可):

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

只有OSX需要导出前缀,您可以使用终端中的echo $PYTHONPATH检查当前路径。

一旦您将PYTHONPATH更改为指向您的python包文件夹版本,您需要使用以下命令强制终端更新路径:

source ~/.profile

然后再次尝试echo $PYTHONPATH并确保它已更改。然后只要指向正确的目录,就应该对其进行设置。

在python路径中定义的所有目录中搜索包。

因此,如果IDLEterminal的工作方式不同,意味着它们的python路径不同。

所以

试试这个:(在空闲和终端上)

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

比较从这两个目录获得的列表,空闲的额外目录将具有whoosh

您可以向sys.path添加目录,如下所示:

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

现在,/home/user/packages中的所有包都可以导入。

您正在运行两个不同的Python安装,一个日期是2011年4月10日,另一个日期是2011年11月28日。第二个没有安装。

你的选择是:

  1. 查找IDLE使用的版本并从命令行运行它。要找到它,请打开IDLE并运行import sys; print sys.executable。它将显示安装了软件包的版本的位置。

  2. 或者,可以通过在命令行安装相同的包来增强命令行版本(即,对要加载的各种包运行python setup.py install)。

相关问题 更多 >