【问题标题】:Error: No Module Named NLTK Python2.7 Linux错误:没有名为 NLTK Python2.7 Linux 的模块
【发布时间】:2016-11-24 01:17:24
【问题描述】:

我在 Linux Red Hat 服务器上,正在尝试启动 python 脚本。我安装了 nltk,但是当我启动脚本时出现以下错误:

ImportError: No module named nltk

这是我的其他 python 安装:

[~/Documents] >which python python2 python3
/bin/python
/bin/python2

但是,nltk 安装在:

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

我不想更改我的路径变量,因为我不是唯一使用此服务器的人,我还能做些什么来解决这个问题?我应该在哪里安装 nltk?

谢谢!

编辑:

我用 sudo pip install nltk 添加了 NLTK

[~/Documents] >which pip pip2 pip3
/bin/pip
/bin/pip2
pip3: Command not found.

我的路径:

[~/Documents] >echo $PATH         

/usr/local/java/java/bin:/bin:/usr/bin:

$PYTHONPATH 不存在,我无法仅使用 pip 安装它

对于我认为只有root可以读/写nltk文件的权限:

ls -l 
drwxr-x---. 23 root root   4096 Nov 23 12:24 nltk
drwxr-x---.  2 root root   4096 Nov 23 12:24 nltk-3.2.1-py2.7.egg-info

【问题讨论】:

  • 如果您尝试直接使用bin/python2 运行脚本会发生什么?或者/bin/python 已经指向那个了?编辑:等等,当你说其他 Python 安装时,这是否意味着你有其他不在你的 PATH 中,没有被 which 显示?
  • @Steve 嗨,史蒂夫,我尝试了所有安装:/bin/python myfile.py、/bin/python2.7 myfile.py 等。这些命令都不起作用..
  • @Steve 刚刚添加了您要求的内容!
  • @Charles 感谢您的发帖,希望它能帮助其他人找到问题所在。我的最后一个想法是尝试使用sudo python 运行,因为在我看来只有root 具有读取权限。
  • @Steve 好的,我会和系统管理员联系,因为我没有运行 sudo python 的权限,但是谢谢,如果它有效,我会及时通知你!

标签: python linux pip


【解决方案1】:

您可以在 Python 脚本的开头添加

import sys; sys.path.append('/usr/lib/python2.7/site-packages')

编辑 1:

如果上述方法不起作用,则必须解决:

import sys
sys.path.insert(0, '/usr/lib/python2.7/site-packages')

编辑 2:

仅在脚本运行时更改 linux 中的路径

from subprocess import call
call('export PYTHONPATH='/usr/lib/python2.7/':$PYTHONPATH,shell=True)

或者你可以直接调用模块

<nltk.pth>
/usr/lib/python2.7/dist-packages

目录中的任何 python 模块或包现在都可以导入了。

编辑 3:

经过一番研究,也许还有另一种方法

首先,您需要使用

将目录附加到您的路径
import sys; sys.path.append('/usr/lib/python2.7/site-packages')

你需要 importlib

from  importlib import import_module

然后你可以像这样导入你的模块:

mod = import_module('nltk')

要获取子模块,您可以这样做:

module_you_want = getattr(mod,'module_you_want')

就是这样!

【讨论】:

  • 您是否将它放在任何其他导入之前?
  • 就在 shebang 行之后。顺便说一句,我写了 #!/usr/bin/env python 这很好还是应该是别的东西?我试过你的第二个答案它也不起作用
  • 是的,我认为这不应该起作用,这不适用于 Python 导入库的方式。无论哪种方式,我都不认为这是最好的解决方案,它只是一种解决方法,主要问题可能会导致更多的麻烦。
  • 您确定安装了 nltk 吗?如果您的路径设置为另一个 python 版本 pip 将安装在 2.7 中的另一个目录中。我写的第一个代码必须有效
  • 是的,它在 /usr/lib/python2.7/site-packages 中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
  • 2019-02-01
  • 2019-08-20
  • 1970-01-01
  • 2019-08-05
  • 1970-01-01
  • 2019-03-24
相关资源
最近更新 更多