导入库问题 - "ImportError: No Module named ____"

10

我看了很多其他关于这个主题的问题/答案,但没有结果。

我使用pip下载了numpy和nltk,根据消息,我知道安装位置是:Requirement already satisfied (use --upgrade to upgrade): nltk in /usr/local/lib/python2.7/site-packages,所以看起来它正在安装在2.7版本的目录下。

当我运行python时,我得到的是Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43),因此显然也是2.7版本。

但是,在Python控制台中尝试“import nltk”或“import numpy”时,我总是会得到ImportError: No module named nltk错误。任何建议将不胜感激!


1
看起来你有多个Python安装,而nltk安装在“另一个Python”中。更改PYTHONPATH是一种不好的技巧。查看此答案,看看是否符合您的情况:https://dev59.com/neo6XIcBkEYKwwoYPSDf#12206868 - Hugo Lopes Tavares
2个回答

19
尝试更改PYTHONPATH环境变量。如果您使用的是BASH,则下面应该可以工作。其他Linux shell在分配环境变量时会略有不同。

尝试更改PYTHONPATH环境变量。如果您正在使用BASH,则以下内容应该可行。其他Linux shell在分配环境变量时会略有不同。

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

我不得不导出.../dist-packages,以便通过Python终端让nltk和其他一些包可用。感谢这个提示。 - So S
更改PYTHONPATH也起作用了 python34 C:\Python34\Lib\site-packages(该路径在通过import sys给出的列表中显示,对于pth in sys.path:print pth,但不知何故,在编辑pythonpath之前它无法正常工作) - JinSnow

10

问题在于/usr/local/lib/python2.7/site-packages没有在默认路径列表中。为了验证这一点,请运行以下命令:

该段文字已被翻译为:

问题在于/usr/local/lib/python2.7/site-packages没有在您的默认路径列表中。为了验证此问题,运行以下命令:

import sys
for pth in sys.path:
    print pth

您将获得搜索模块的目录列表。由于您可能不会在列表中拥有/usr/local/lib/python2.7/site-packages,因此您有以下选项:

  1. 从其中一个目录路径中删除nltk,然后重新安装它(请注意,在Debian上,它可能是/usr/local/lib/python2.7/dist-packages)。

  2. 在每次运行时设置PYTHONPATH变量:export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages(您可以将此命令放入$HOME/.bashrc文件中)。

  3. 将一个名为local.pth的文件放入/usr/lib/python2.7/site-packages/usr/lib/python2.7/dist-packages(取决于上面脚本的输出),其中包含一行:

/usr/local/lib/python2.7/site-packages

这将永久性地将此目录添加到您的默认路径列表中。

  • (这仅建议用于某些很少使用的非标准软件包,安装在某个奇怪的位置,这可能不是您的情况)在脚本开始之前(在 import nltk 之前),添加以下代码:

  • import sys
    sys.path.append("/usr/local/lib/python2.7/site-packages")
    

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接