没有名为_sqlite3的模块

2024-04-25 09:49:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在运行Debian5的VPS上运行Django应用程序。当我运行演示应用程序时,它会返回以下错误:

  File "/usr/local/lib/python2.5/site-packages/django/utils/importlib.py", line 35, in     import_module
    __import__(name)

  File "/usr/local/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py", line 30, in <module>
    raise ImproperlyConfigured, "Error loading %s: %s" % (module, exc)

ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that     order): No module named _sqlite3

查看Python安装,它会给出相同的错误:

Python 2.5.2 (r252:60911, May 12 2009, 07:46:31) 
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.5/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: No module named _sqlite3
>>>

通过在web上阅读,我了解到Python 2.5应该包含所有必需的SQLite包装。我是否需要重新安装Python,或者是否有其他方法来启动并运行此模块?


Tags: djangoinpyimport应用程序libpackagesusr
3条回答

似乎您的makefile没有包含适当的.so文件。可以通过以下步骤更正此问题:

  1. 在一些基于Debian的系统上安装sqlite-devel(或libsqlite3-dev
  2. 使用./configure --enable-loadable-sqlite-extensions && make && sudo make install重新配置和编译Python

注意

sudo make install部分将把python版本设置为系统范围的标准,这可能会产生不可预见的后果。如果在工作站上运行此命令,则可能需要在现有python旁边安装,这可以通过^{}完成。

我有同样的问题(在Ubuntu Lucid上从源代码构建python2.5),并且import sqlite3抛出了同样的异常。我已经从包管理器安装了libsqlite3-dev,重新编译了python2.5,然后导入成功。

在使用pyenv时,我对Ubuntu上的Python 3.5也有同样的问题。

如果您使用pyenv安装python,它将列为common build problems之一。要解决这个问题,请删除已安装的python版本,安装需求(对于这个特殊情况libsqlite3-dev),然后重新安装python版本。

相关问题 更多 >