2016-11-24 19 views
0

我在Linux Red Hat服務器上,並試圖啓動python腳本。我安裝NLTK,但是當我開始我的劇本,我得到以下錯誤:錯誤:無模塊命名爲NLTK Python2.7 Linux

ImportError: No module named nltk 

這裏是我的其他Python安裝:

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

不過,NLTK安裝在:

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

我不想改變我的路徑變量,因爲我不是唯一使用這個服務器的人,還有什麼我可以做的來克服這個問題嗎?我應該在哪裏安裝nltk?

謝謝!

編輯:

我加NLTK使用sudo PIP安裝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 
+0

如果您嘗試直接使用'bin/python2'運行腳本,會發生什麼?或者'/ bin/python'已經指向那個?編輯:等等,當你說其他的Python安裝時,這是否意味着你有其他人不在你的PATH中,是不是由'which'顯示? – Steve

+0

@Steve嗨史蒂夫,我試着用我所有的安裝:/ bin/python myfile.py,/bin/python2.7 myfile.py等這些命令都沒有工作.. – Charles

+0

嘗試與sudo pip安裝-U nltk – eyllanesc

回答

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') 

,你需要導入庫

from importlib import import_module 

然後你可以像這樣導入你的模塊:

mod = import_module('nltk') 

獲得子模塊,你可以這樣做:

module_you_want = getattr(mod,'module_you_want') 

完蛋了!

+0

試過了,沒有工作.. – Charles

+0

你是否把它放在任何其他進口之前? –

+0

在shebang線之後。順便說一句,我寫了#!/ usr/bin/env python是這樣好還是應該是別的東西?我試過你的第二個答案,它不起作用 – Charles

相關問題