错误:没有模块命名为NLTK Python2.7 Linux

时间:2016-11-24 01:17:24

标签: python linux pip

我在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

1 个答案:

答案 0 :(得分:0)

您可以添加到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:

经过一些研究后可能还有另一种方法

首先,您需要使用

将目录附加到yout路径
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')

就是这样!