【问题标题】:ImportError: No module named '_sqlite3' in python3.3ImportError:python3.3 中没有名为“_sqlite3”的模块
【发布时间】:2013-12-06 05:57:10
【问题描述】:

sqlite3 错误

import sqlite3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.3/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.3/sqlite3/dbapi2.py", line 26, in <module>
    from _sqlite3 import *
ImportError: No module named '_sqlite3'

我使用 sqlite3 安装命令

pip install pysqlite
Downloading/unpacking pysqlite
  Downloading pysqlite-2.6.3.tar.gz (76kB): 76kB downloaded
  Running setup.py egg_info for package pysqlite
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/usr/local/lib/python3.3/codecs.py", line 300, in decode
        (result, consumed) = self._buffer_decode(data, self.errors, final)
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 98: invalid continuation byte 
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

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

  File "/usr/local/lib/python3.3/codecs.py", line 300, in decode

    (result, consumed) = self._buffer_decode(data, self.errors, final)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 98: invalid continuation byte

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/pysqlite
Storing complete log in /root/.pip/pip.log

【问题讨论】:

  • 你安装了 libsqlite3-dev 吗?
  • 尝试在 django 之外导入它。会发生什么?
  • 是已经安装了 libsqlite3-dev
  • python manage.py syncdb Traceback(最近一次调用最后一次):文件“/usr/local/lib/python3.3/site-packages/django/db/backends/sqlite3/base.py” ,第 29 行,在
  • 我无法回答:(((我没有足够的排名:((

标签: django sqlite python-3.3


【解决方案1】:

我想一定是你没有安装sqlite3,你可以这样做

 sudo apt-get install sqlite3  
 sqlite3 -version  
 sudo apt-get install python-pysqlite2  
 sudo apt-get install python-pysqlite2-dbg  
 sudo apt-get install libsqlite3-dev   
 sudo apt-get install sqlite  
 sudo pip install pysqlite 

然后你会找到 sqlite3

【讨论】:

  • 这对我有用:markgruenberg.site/…
  • 谢谢,libsqlite3-dev 是我缺少的钥匙。
  • 我不明白这是什么巫术,但它确实有效!
【解决方案2】:

我在使用已编译的 3.5.7 时碰到了这个问题

wget https://www.python.org/ftp/python/3.5.7/Python-3.5.7.tgz
tar xvfz Python-3.5.7.tgz
cd Python-3.5.7
./configure --enable-optimizations
sudo make altinstall
# python3.5
>>> import sqlite3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.5/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: No module named '_sqlite3'

解决办法:

yum install sqlite-devel
re-compile python 3.5 from source

【讨论】:

  • 我在第二次重新编译之前安装了 sqlite-devel,这可能会解决问题。 yum install sqlite-devel
【解决方案3】:

对于 Ubuntu 中的 Python3:

  • sudo apt-get install libsqlite3-dev
  • wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz(将版本号替换为你的python3版本)
  • tar -xf Python-3.6.3.tar.xz
  • cd Python-3.6.3/
  • ./configure --enable-loadable-sqlite-extensions &amp;&amp; make &amp;&amp; sudo make install

参考:https://github.com/sloria/TextBlob/issues/173

【讨论】:

  • 请注意,不建议使用“make install”,因为它可能会覆盖您系统的 Python 版本,并且某些软件包可能取决于特定版本。建议使用“make altinstall”不要覆盖/usr/bin/python3,而是将其安装到/usr/local/bin/python3。详情请见docs.python.org/3.7/using/unix.html#building-python
【解决方案4】:

编译包缺东西,你应该用yum 安装这5个,然后重新编译安装python3

yum install readline-devel
yum install tk-devel
yum install tcl-devel  
yum install openssl-devel   
yum install sqlite-devel 

然后重新编译python3

tar Jxvf  Python-3.5.0.tar.xz
cd Python-3.5.0
./configure --prefix=/usr/local/python3
make && make install

【讨论】:

    【解决方案5】:

    我是 Fedora 20 用户。要解决这个问题:

    1. 安装 sqlite-devel 包,使用:

      yum install sqlite-devel
      
    2. 安装后,从源代码重新编译python:

      ./configure
      make && make install
      

    对于多个版本的 Python,请使用 altinstall 而不是 install

    【讨论】:

    • 我不知道为什么这得到了两个反对意见。它解决了 CentOS 5.11 上的问题。
    • 配置文件在哪里?我试过find /*/python*/conf*,但什么也没找到。
    • 这是一个很好的答案。刚刚在 RHEL 6.7(圣地亚哥)上为我工作。
    • 合理的回答!在 CentOS 7 上工作!
    猜你喜欢
    • 2010-11-15
    • 2012-07-20
    • 2012-06-02
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多