首页 > 解决方案 > Python3.7 Nltk ModuleNotFoundError:没有名为'_sqlite3的模块

问题描述

我正在使用 pipenv 来管理我的依赖项 - 这是我的 pipfile:

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
elasticsearch-dsl = "*"
spacy = "*"

nltk = "*"
"pysqlite3" = "*"

[dev-packages]

[requires]
python_version = "3.7"

尝试运行使用 NLTK 的应用程序时,我收到以下错误:

  File "/home/dell/swipe_xkcd/cron/populate_db.py", line 7, in <module>
    from scraper import xkcd_scraper
  File "/home/dell/swipe_xkcd/scraper/xkcd_scraper.py", line 13, in <module>
    from nltk.corpus import stopwords
  File "/home/dell/swipe_xkcd/venv/lib/python3.7/site-packages/nltk/__init__.py", line 150, in <module>
    from nltk.translate import *
  File "/home/dell/swipe_xkcd/venv/lib/python3.7/site-packages/nltk/translate/__init__.py", line 23, in <module>
    from nltk.translate.meteor_score import meteor_score as meteor
  File "/home/dell/swipe_xkcd/venv/lib/python3.7/site-packages/nltk/translate/meteor_score.py", line 10, in <module>
    from nltk.stem.porter import PorterStemmer
  File "/home/dell/swipe_xkcd/venv/lib/python3.7/site-packages/nltk/stem/__init__.py", line 29, in <module>
    from nltk.stem.snowball import SnowballStemmer
  File "/home/dell/swipe_xkcd/venv/lib/python3.7/site-packages/nltk/stem/snowball.py", line 32, in <module>
    from nltk.corpus import stopwords
  File "/home/dell/swipe_xkcd/venv/lib/python3.7/site-packages/nltk/corpus/__init__.py", line 66, in <module>
    from nltk.corpus.reader import *
  File "/home/dell/swipe_xkcd/venv/lib/python3.7/site-packages/nltk/corpus/reader/__init__.py", line 105, in <module>
    from nltk.corpus.reader.panlex_lite import *
  File "/home/dell/swipe_xkcd/venv/lib/python3.7/site-packages/nltk/corpus/reader/panlex_lite.py", line 15, in <module>
    import sqlite3
  File "/home/dell/.pyenv/versions/3.7.3/lib/python3.7/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/home/dell/.pyenv/versions/3.7.3/lib/python3.7/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

我该如何解决?

我试过sudo apt install libsqlite3-dev了,但没有奏效——同样的错误仍然存​​在。

我也尝试安装 pysqlite 但无济于事。

标签: python-3.xsqlitenltkpipenv

解决方案


解决了

不久前我python用 pyenv 安装了我的。它没有收到libsqlite3-dev,因为我当时没有它,所以解决方案是像这样重新安装 python:

pyenv install 3.7.1


推荐阅读