安装nltk包时出现"ModuleNotFoundError: No module named '_sqlite3'"错误

7
在运行具有nltk依赖项的代码片段时,出现以下错误。
手动安装了python 3.6.5并在虚拟环境中使用它
操作系统(Red Hat Linux 7.4-Maipo)已安装python 2.7.4
Traceback (most recent call last):
  File "FLASK_RECOMMENDER_VER_1_1.py", line 15, in <module>
    import nltk
  File "/home/ec2-user/RecommenderEngine/re_env/lib/python3.6/site-packages/nltk/__init__.py", line 137, in <module>
    from nltk.stem import *
  File "/home/ec2-user/RecommenderEngine/re_env/lib/python3.6/site-packages/nltk/stem/__init__.py", line 29, in <module>
    from nltk.stem.snowball import SnowballStemmer
  File "/home/ec2-user/RecommenderEngine/re_env/lib/python3.6/site-packages/nltk/stem/snowball.py", line 32, in <module>
    from nltk.corpus import stopwords
  File "/home/ec2-user/RecommenderEngine/re_env/lib/python3.6/site-packages/nltk/corpus/__init__.py", line 66, in <module>
    from nltk.corpus.reader import *
  File "/home/ec2-user/RecommenderEngine/re_env/lib/python3.6/site-packages/nltk/corpus/reader/__init__.py", line 105, in <module>
    from nltk.corpus.reader.panlex_lite import *
  File "/home/ec2-user/RecommenderEngine/re_env/lib/python3.6/site-packages/nltk/corpus/reader/panlex_lite.py", line 15, in <module>
    import sqlite3
  File "/usr/local/lib/python3.6/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.6/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

尝试以下解决方案,但没有帮助(使用了yum和pip): 解决方案1
sudo apt-get install libsqlite3-dev

(或者按照pyenv维基上的建议安装更多包:
apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev

现在在已下载的Python源码中,使用以下命令重新构建和安装Python:./configure --enable-loadable-sqlite-extensions && make && sudo make install。

我的尝试产生了以下错误:

Collecting libsqlite3-dev
  Could not find a version that satisfies the requirement libsqlite3-dev (from versions: )
No matching distribution found for libsqlite3-dev
1个回答

9

回答自己的问题。

最终通过安装sqlite-devel包来解决问题:

yum install sqlite-devel

重新安装Python,步骤如下:
sudo wget http://python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
tar xf Python-3.6.5.tar.xz
cd Python-3.6.5
sudo ./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" 
sudo ./configure --enable-optimizations
sudo make && sudo make altinstall

只是想补充一下,这也解决了我的虚拟 Python 环境问题,谢谢。 - Matthias Herrmann
执行花费了很长时间,有人遇到过这个问题吗? - jht
@ jht 你指的是多久?我没有启用优化,编译和链接所有内容大约需要几分钟。我认为这可能是相当合理的,但如果启用了优化,时间可能会略长。 - Nathan Chappell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接