python2.7安装sqlite3模块

本文详细记录了在Python2.7环境中安装SQLite3模块的过程,包括使用pip安装失败的原因,手动下载和配置SQLite3源码,以及修改Python源文件setup.py来正确识别SQLite3模块的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python2.7安装sqlite3模块

 

安装sqlite3

 

尝试使用pip安装,安装失败:

 

[root@uouo123 src]# pip install sqlite3

 

Collecting sqlite3

 

  Using cached sqlite3-99.0.tar.gz

 

    Complete output from command python setup.py egg_info:

 

    Traceback (most recent call last):

 

      File "<string>", line 1, in <module>

 

      File "/tmp/pip-build-GKbPwN/sqlite3/setup.py", line 2, in <module>

 

        raise RuntimeError("Package 'sqlite3' must not be downloaded from pypi")

 

    RuntimeError: Package 'sqlite3' must not be downloaded from pypi

 

    

 

    ----------------------------------------

 

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-GKbPwN/sqlite3/

 

 

 

 

 

下载安装sqlite3

 

[root@uouo123 src]# wget https://sqlite.org/2017/sqlite-autoconf-3190300.tar.gz

 

[root@uouo123 src]# tar -xvf sqlite-autoconf-3190300.tar.gz 

 

[root@uouo123 sqlite-autoconf-3190300]# ./configure --prefix=/usr/local/lib/python2.7/dist-packages/sqlite3

 

[root@uouo123 sqlite-autoconf-3190300]# make && make install

 

安装完毕后发现导入sqlite3仍然失败,只能重装python了

 

>>> import sqlite3

 

Traceback (most recent call last):

 

  File "<stdin>", line 1, in <module>

 

  File "/usr/local/lib/python2.7/sqlite3/__init__.py", line 24, in <module>

 

    from dbapi2 import *

 

  File "/usr/local/lib/python2.7/sqlite3/dbapi2.py", line 28, in <module>

 

    from _sqlite3 import *

 

ImportError: No module named _sqlite3

 

>>> exit()

 

 

 

 

 

修改python安装源文件setup.py

 

[root@uouo123 src]# tar -xvf Python-2.7.14.tgz 

 

[root@uouo123 src]# cd Python-2.7.14    

 

[root@uouo123 Python-2.7.14]# vi setup.py 

 

搜索sqlite3找到第1105行,在其下面加入一行上面我们安装的sqlite3的路径:

 

   1097         # We hunt for #define SQLITE_VERSION "n.n.n"

 

   1098         # We need to find >= sqlite version 3.0.8

 

   1099         sqlite_incdir = sqlite_libdir = None

 

   1100         sqlite_inc_paths = [ '/usr/include',

 

   1101                              '/usr/include/sqlite',

 

   1102                              '/usr/include/sqlite3',

 

   1103                              '/usr/local/include',

 

   1104                              '/usr/local/include/sqlite',

 

   1105                              '/usr/local/include/sqlite3',

 

   1106                              '/usr/local/lib/python2.7/dist-packages/sqlite3',  #新增此行

 

   1107                            ]

 

保存退出。

 

 

 

 

 

 

 

重新编译python2.7

 

 

 

[root@uouo123 Python-2.7.14]# ./configure 

 

[root@uouo123 Python-2.7.14]# make && make install

 

 

 

检查lib文件是否生成

 

 

 

[root@uouo123 Python-2.7.14]# ll /usr/local/lib/python2.7/lib-dynload/_sqlite3.so 

 

-rwxr-xr-x 1 root root 243444 May 30 01:15 /usr/local/lib/python2.7/lib-dynload/_sqlite3.so

 

 

验证sqlite3模块导入是否成功

 

 

 

[root@uouo123 Python-2.7.14]# python

 

Python 2.7.14 (default, May 30 2017, 01:14:38) 

 

[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux2

 

Type "help", "copyright", "credits" or "license" for more information.

 

>>> import sqlite3

 

>>> exit()

 

[root@uouo123 Python-2.7.14]#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向良玉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值