转载自:https://www.cnblogs.com/if-then/p/6980265.html
根据自己的现状做了一些修改,如有侵权,请联系我删除,谢谢
环境为Ubuntu14.04 Python3.6.9 SQLALchemy 1.3.13
今天移植Python 代码到 Ubuntu14.04 ,发现引包 SQLALchemy 报错
ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3
于是打开Python 测试下能否导入sqlite3模块
>>> import sqlite3
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/sqlite3/__init__.py", line 24, in
from dbapi2 import *
File "/usr/local/lib/python2.7/sqlite3/dbapi2.py", line 28, in
from _sqlite3 import *
ImportError: No module named _sqlite3
结果是没有,我原来使用的是windows,sqlite3已经在安装包里了,但是源码安装的没有,是要依赖系统的库
我安装了如下两个:
sudo apt-get install libsqlite3-dev
sudo apt-get install sqlite3
PS(我是一直在试,找应该安装哪个,有一个就安一个,但是安完觉得可能有多余的,所以如果你也在安装的话,可以先安装第一个,然后再重新Python2.7,看make时是否提示_sqlite3 需要单独安装,如下的话还是不行,那么再装第二个)
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _sqlite3 _tkinter
bsddb185 bz2 dbm
dl gdbm imageop
readline sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module’s name.
上面为编译完提示不能一起安装,需要单独安装的提示:
提示:网上的博客很多,但是各自的情况不一样,都需要自己试试
对与sqlite3这个模块的做法有两类:
1下载sqlite3模块sqlite-autoconf-3190300.tar.gz源码,
手工配置,编译,安装,再配置python安装下的setup.py 我没行得通,还是提示无法安装_sqlite3这个提示!
2还有一种是 find / -name “_sqlite3*so” ;然后将此文件 cp到 安装目录下的 lib-dynload(一个动态库文件夹),但是我find的结果是
_sqlite3.x86_64-linux-gnu.so 而且将其改名拷贝过去还是不能用!
3 安装依赖包,系统不同,包名不同(靠谱)
centos下 是 yum install sqlite3-devel -y #搜索到这个的情况比较多,我也是基于此说法,才判断是装一个dev包就应该可以
ubuntu 下是 sudo apt-get install libsqlite3-dev
然后重新make重新安装python吧
如下提示中没有了_sqlite3,那么就没问题了,而且可以看下bulid目录下存在了_sqlite3.so!
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _ssl _tkinter
bsddb185 bz2 dbm
dl gdbm imageop
readline sunaudiodev zlib
To find the necessary bits, look in setup.py in detect_modules() for the module’s name.
进一步验证,安装完成后
发现了 _sqlite3.so 文件,我的是 ./_sqlite3.cpython-36m-x86_64-linux-gnu.so 文件
>>> import sqlite3
不报错即可!