Python NLTK与烧瓶导入错误
我的文件夹目录是这样的Python NLTK与烧瓶导入错误,python,flask,nltk,importerror,Python,Flask,Nltk,Importerror,我的文件夹目录是这样的 /maindir __init__.py settings.py start /run.py /venv .. other directories for flask here bin,include..etc /app __init__.py main.py views.py /nbc /__init__.py naivebayesclassifier.py naivebayesc
/maindir
__init__.py
settings.py
start
/run.py
/venv
.. other directories for flask here bin,include..etc
/app
__init__.py
main.py
views.py
/nbc
/__init__.py
naivebayesclassifier.py
naivebayesclassifier.py模块使用nltk库
from nltk.probability import ELEProbDist, FreqDist
import nltk
from collections import defaultdict
from os import listdir
from os.path import isfile, join
我遇到了一个问题,如果我尝试直接运行程序,则无法进入/app并运行
python main.py
这进一步包括nbc和使用它,我没有问题
但是,当我尝试将其与flask一起部署时。我将一个目录移出并运行
/开始,它具有以下内容
. venv/bin.activate
./run.py
并且run.py具有以下特性
#!venv/bin/python
from app import app
app.run(debug = True)
这在我包含nltk库之前就已经起作用了,但是现在它给了我一个错误
ImportError: No module named nltk.probability
我已使用
sudo pip install -U pyyaml nltk
但我觉得我缺少一些安装,无法在部署时使其正常工作。似乎是激活virtualenv导致了问题。在运行
sudopip安装-U pyyaml nltk
之前是否激活了virtualenv?如果没有,它们将在全球范围内安装。请记住,默认情况下,当您创建VirtualEnvironment时,它将忽略所有未直接安装到环境本身中的软件包(换句话说,它将忽略您使用apt get install
全局安装的软件包)。因此,您有两种选择:
pip Install nltk
)。如果nltk依赖于任何开发库,那么您也需要安装这些开发库。可以使用软件包管理器(apt get
)安装这些软件包您使用的是什么操作系统以及Python的哪个版本?Ubuntu12.04和Python2.7.3I在venv中运行了sudo pip install-U pyyaml nltk,但它似乎什么都没做。相反,我只是试着运行pip安装nltk,事情似乎很顺利。谢谢@拉胡尔:啊,
sudo
实际上在一个新的shell上运行了pip命令,这意味着该命令在virtualenv之外运行。