Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python NLTK与烧瓶导入错误_Python_Flask_Nltk_Importerror - Fatal编程技术网

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
全局安装的软件包)。因此,您有两种选择:

  • 将依赖项安装到virtualenv中(通过激活virtualenv,然后执行
    pip Install nltk
    )。如果nltk依赖于任何开发库,那么您也需要安装这些开发库。可以使用软件包管理器(
    apt get
    )安装这些软件包

  • 重新构建virtualenv,这次使用选项。这将允许您使用安装在VirtualEnvironment外部的软件包


  • 您使用的是什么操作系统以及Python的哪个版本?Ubuntu12.04和Python2.7.3I在venv中运行了sudo pip install-U pyyaml nltk,但它似乎什么都没做。相反,我只是试着运行pip安装nltk,事情似乎很顺利。谢谢@拉胡尔:啊,
    sudo
    实际上在一个新的shell上运行了pip命令,这意味着该命令在virtualenv之外运行。