The problem of not finding sqlite3 under CentOS 7 was solved

  • 2020-06-12 11:36:34
  • OfStack

This paper mainly introduces the solution to CentOS 7's sqlite3 problem, and shares it for your reference and study. Let's have a look at the detailed introduction below:

nltk startup problem under Centos7

CentOS 7, Python 3.6, ipython 6.0.0

Problem description

ipython

Start the ipython command

import nltk

Burst out the following error message:


In [1]: import nltk
---------------------------------------------------------------------------
ModuleNotFoundError      Traceback (most recent call last)
<ipython-input-1-b06499430ee0> in <module>()
----> 1 import nltk

/opt/python36env/lib/python3.6/site-packages/nltk/__init__.py in <module>()
 135 from nltk.translate import *
 136 from nltk.sem import *
--> 137 from nltk.stem import *
 138 
 139 # Packages which can be lazily imported

/opt/python36env/lib/python3.6/site-packages/nltk/stem/__init__.py in <module>()
  27 from nltk.stem.isri import ISRIStemmer
  28 from nltk.stem.porter import PorterStemmer
---> 29 from nltk.stem.snowball import SnowballStemmer
  30 from nltk.stem.wordnet import WordNetLemmatizer
  31 from nltk.stem.rslp import RSLPStemmer

/opt/python36env/lib/python3.6/site-packages/nltk/stem/snowball.py in <module>()
  24 
  25 from nltk import compat
---> 26 from nltk.corpus import stopwords
  27 from nltk.stem import porter
  28 from nltk.stem.util import suffix_replace

/opt/python36env/lib/python3.6/site-packages/nltk/corpus/__init__.py in <module>()
  64 from nltk.tokenize import RegexpTokenizer
  65 from nltk.corpus.util import LazyCorpusLoader
---> 66 from nltk.corpus.reader import *
  67 
  68 abc = LazyCorpusLoader(

/opt/python36env/lib/python3.6/site-packages/nltk/corpus/reader/__init__.py in <module>()
 103 from nltk.corpus.reader.categorized_sents import *
 104 from nltk.corpus.reader.comparative_sents import *
--> 105 from nltk.corpus.reader.panlex_lite import *
 106 
 107 # Make sure that nltk.corpus.reader.bracket_parse gives the module, not

/opt/python36env/lib/python3.6/site-packages/nltk/corpus/reader/panlex_lite.py in <module>()
  13 
  14 import os
---> 15 import sqlite3
  16 
  17 from nltk.corpus.reader.api import CorpusReader

/usr/local/lib/python3.6/sqlite3/__init__.py in <module>()
  21 # 3. This notice may not be removed or altered from any source distribution.
  22 
---> 23 from sqlite3.dbapi2 import *

/usr/local/lib/python3.6/sqlite3/dbapi2.py in <module>()
  25 import collections.abc
  26 
---> 27 from _sqlite3 import *
  28 
  29 paramstyle = "qmark"

ModuleNotFoundError: No module named '_sqlite3'

From the error message analysis, we can find that sqlite3 can not be found.

Problem analysis and solution

Try to see if sqlite3 is installed:

yum search sqlite3


yum search sqlite3
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
=============================================================================== N/S matched: sqlite3 ================================================================================
libsqlite3x.x86_64 : A C++ Wrapper for the SQLite3 embeddable SQL database engine
libsqlite3x-devel.x86_64 : Development files for libsqlite3x
preludedb-sqlite3.x86_64 : Plugin to use prelude with a SQLite3 database
rubygem-sqlite3.x86_64 : Allows Ruby scripts to interface with a SQLite3 database
rubygem-sqlite3-doc.noarch : Documentation for rubygem-sqlite3
soci-sqlite3.x86_64 : SQLite3 back-end for soci
soci-sqlite3-devel.x86_64 : SQLite3 back-end for soci
uwsgi-plugin-sqlite3.x86_64 : uWSGI - SQLite3 plugin
dspam-sqlite3.x86_64 : SQLite v3.x storage driver for libdspam
golang-googlecode-sqlite-devel.i686 : Trivial sqlite3 binding for Go
golang-googlecode-sqlite-devel.x86_64 : Trivial sqlite3 binding for Go
libsq3.x86_64 : A C++ Wrapper for the SQLite3 embeddable SQL database engine
libsq3-devel.x86_64 : Development files for libsqlite3x
opendbx-sqlite.x86_64 : SQLite 3 backend - provides sqlite3 support in opendbx
python-sqlite3dbm.noarch : SQLite-backed dictionary conforming to the dbm interface
sqlite-devel.i686 : Development tools for the sqlite3 embeddable SQL database engine
sqlite-devel.x86_64 : Development tools for the sqlite3 embeddable SQL database engine
sqlite-tcl.x86_64 : Tcl module for the sqlite3 embeddable SQL database engine
sqlite3-dbf.x86_64 : Converter of XBase / FoxPro tables to SQLite
zabbix20-proxy-sqlite3.x86_64 : Zabbix proxy compiled to use SQLite
zabbix22-dbfiles-sqlite3.noarch : Zabbix database schemas and patches
zabbix22-proxy-sqlite3.x86_64 : Zabbix proxy compiled to use SQLite

sqlite3-devel was found and installed

yum install sqlite-devel


yum install sqlite-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package sqlite-devel.x86_64 0:3.7.17-8.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================================================================================================
 Package          Arch          Version          Repository        Size
=====================================================================================================================================================================================
Installing:
 sqlite-devel         x86_64         3.7.17-8.el7         base         104 k

Transaction Summary
=====================================================================================================================================================================================
Install 1 Package

Total download size: 104 k
Installed size: 366 k
Is this ok [y/d/N]: y
Downloading packages:
sqlite-devel-3.7.17-8.el7.x86_64.rpm                               | 104 kB 00:00:00  
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : sqlite-devel-3.7.17-8.el7.x86_64                                 1/1 
 Verifying : sqlite-devel-3.7.17-8.el7.x86_64                                 1/1 

Installed:
 sqlite-devel.x86_64 0:3.7.17-8.el7                                     

Complete!

The problem is not solved

Restart ipython

import nltk

But the question remains, what went wrong?

Problem finally solved

Although the sqlite3 database is installed, sqlite3 cannot be found in an ipython environment.

So I recompiled and installed 1 python3.

Note: This is after the SUCCESSFUL installation of sqlite3 in the python runtime environment.

When you restart ipython, the problem goes away and the 1 cut is normal, essentially the installation of sqlite3 and the problem of matching sqlite3 to python's operating environment.

conclusion


Related articles: