NLTK с ошибкой импорта колбы

Каталог моей папки как таковой

/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 

У меня проблема, если я попытаюсь запустить программу непосредственно из вхождения / приложения и запуска

 python main.py 

который далее включает nbc и использует его, у меня нет проблем.

Однако, когда я пытаюсь развернуть это вместе с флягой. Я перемещаю одну директорию и запускаю ./start, которая имеет следующие

 . 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 

Я установил nltk, используя

 sudo pip install -U pyyaml nltk 

но я чувствую, что у меня отсутствует какая-то инсталляция, чтобы заставить ее работать во время развертывания.

One Solution collect form web for “NLTK с ошибкой импорта колбы”

Похоже, что активация вашего virtualenv вызывает проблему. Вы активировали virtualenv перед запуском sudo pip install -U pyyaml nltk ? Если нет, они были установлены глобально. Помните, что по умолчанию при создании виртуальной среды он игнорирует все пакеты, которые не установлены непосредственно в самой среде (другими словами, он будет игнорировать пакеты, которые вы установили глобально, используя apt-get install ). Итак, у вас есть два варианта:

  1. Установите свои зависимости в свой virtualenv (активировав virtualenv, затем выполнив pip install nltk ). Если nltk зависит от каких-либо библиотек разработки, вам также потребуется установить эти библиотеки разработки. Они могут быть установлены с помощью диспетчера пакетов ( apt-get ).

  2. Перестройте свой virtualenv, на этот раз используя --system-site-packages . Это позволит вам использовать пакеты, установленные за пределами виртуальной среды.

Python - лучший язык программирования в мире.