python3安装sqlite3库

启动scrapy的时候报如下错误

raceback (most recent call last):
  File "/usr/local/python3/lib/python3.6/site-packages/Twisted-17.1.0-py3.6-linux-x86_64.egg/twisted/internet/defer.py", line 1301,
 in _inlineCallbacks
    result = g.send(result)
  File "/usr/local/python3/lib/python3.6/site-packages/scrapy/crawler.py", line 82, in crawl
    yield self.engine.open_spider(self.spider, start_requests)
ModuleNotFoundError: No module named '_sqlite3'

这是因为安装的python版本没有集成sqlite3,所有没有找到sqlite3.so的库。

解决方案一
yum install sqlite*

然后重新编译python或者重新安装python

如果上述方案不管用可使用方案二

解决方案二

通过编译安装sqlite3,下载地址:https://www.sqlite.org/download.html

# 先解压下载的安装包喔
./configure --prefix=/usr/local/sqlite3
make && make install
#手动安装sqlite3 完成的时候会有这么一段提示:
----------------------------------------------------------------------
Libraries have been installed in:
  /usr/local/sqlite3/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

这段内容显示了sqlite3的安装路径:/usr/local/sqlite3/lib。
特别注意add LIBDIR to the 'LD_LIBRARY_PATH' environment variablesqlite建议添加环境变量。

export LD_LIBRARY_PATH=/usr/local/sqlite3

设置一个环境变量,然后重新编译python3安装就能够成功了。

然后打开python安装源码的setup.py修改如下:

sqlite_inc_paths = [ '/usr/include',
                             '/usr/local/sqlite3/include', #增加该部分内容
                             '/usr/include/sqlite',
                             '/usr/include/sqlite3',
                             '/usr/local/include',
                             '/usr/local/include/sqlite',

进源码目录里编译即可

make
make install

然后可以进python环境 import sqlite3试试能不能正常导入

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,044评论 2 59
  • 1. 介绍 首先让我们来看看TensorFlow! 但是在我们开始之前,我们先来看看Python API中的Ten...
    JasonJe阅读 11,823评论 1 32
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,751评论 25 709
  • 第一部分 Python基础篇(80题) 1、为什么学习Python? Python相对于其他编程语言有很多优点: ...
    清清子衿木子水心阅读 1,750评论 0 1
  • 一、周易在中国哲学中的地位 周易既是自然科学,也是人文科学,易经是群经之首,群经之始,是中华文化的总源头、它是诸子...
    无言空间阅读 1,227评论 1 4