没有名为_sqlite3的模块
我试图在运行Debian 5的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 >>>
在网上阅读,我知道Python 2.5应该包含所有必要的SQLite包装。 我是否需要重新安装Python,还是有另一种方法来启动这个模块?
我有同样的问题(从Ubuntu Lucid的源码构buildpython2.5
),并import sqlite3
抛出这个相同的例外。 我已经从包pipe理器安装libsqlite3-dev
,重新编译python2.5,然后导入工作。
看起来你的makefile没有包含相应的.so
文件。 我用下面的步骤纠正了这个问题:
- 在一些基于Debian的系统上安装
sqlite-devel
(或libsqlite3-dev
) - 使用
./configure --enable-loadable-sqlite-extensions && make && sudo make install
重新configuration和重新编译Python./configure --enable-loadable-sqlite-extensions && make && sudo make install
这是我所做的工作。
我使用Python 2.7.5安装pythonbrew(这是使用点)。
我首先做了Zubair(上面)说的并且执行这个命令:
sudo apt-get install libsqlite3-dev
然后我运行这个命令:
pip install pysqlite
这解决了数据库问题,当我跑时我得到了确认:
python manager.py syncdb
-
安装
sqlite-devel
包:yum install sqlite-devel -y
-
从源代码重新编译python:
./configure make make altinstall
我的_sqlite3.so位于/usr/lib/python2.5/lib-dynload/_sqlite3.so。 从你的path判断,你应该有文件/usr/local/lib/python2.5/lib-dynload/_sqlite3.so。
尝试以下操作:
find /usr/local -name _sqlite3.so
如果找不到该文件,则说明您的Python安装可能有问题。 如果是,请确保安装的path位于Pythonpath中。 在Python shell中,
import sys print sys.path
在我的情况下,/usr/lib/python2.5/lib-dynload是在列表中,所以它能够find/usr/lib/python2.5/lib-dynload/_sqlite3.so。
我最近尝试在我的Ubuntu 11.04桌面上安装python 2.6.7以进行一些开发工作。 遇到类似的问题,这个线程。 我受到损害以解决它:
-
调整setup.py文件以包含正确的sqlite开发path。 来自setup.py的代码片段:
def sqlite_incdir: sqlite_dirs_to_check = [ os.path.join(sqlite_incdir, '..', 'lib64'), os.path.join(sqlite_incdir, '..', 'lib'), os.path.join(sqlite_incdir, '..', '..', 'lib64'), os.path.join(sqlite_incdir, '..', '..', 'lib'), '/usr/lib/x86_64-linux-gnu/' ]
与我添加的位是'/ usr / lib / x86_64-linux-gnu /'。
-
运行后,我没有得到任何警告说,没有build立的SQLite支持(即,它构build正确:P),但运行
make install
,sqlite3仍然没有导入具有相同的“ImportError: No module named _sqlite3" whe running "import sqlite3
”。所以,这个库被编译了,但是没有移动到正确的安装path,所以我复制了
.so
文件(cp /usr/src/python/Python-2.6.7/build/lib.linux-x86_64-2.6/_sqlite3.so /usr/local/python-2.6.7/lib/python2.6/sqlite3/
– 这些是我的构buildpath,你可能需要调整它们到你的设置)。
瞧! SQLite3支持现在工作。
在使用pyenv时,我在Ubuntu上遇到了与Python 3.5相同的问题。
如果你正在使用pyenv安装python,它被列为常见的构build问题之一 。 为了解决这个问题,删除已安装的python版本,安装需求(对于这个特殊情况libsqlite3-dev
),然后重新安装python版本。
这在Redhat Centos 6.5中适用于我:
yum install sqlite-devel pip install pysqlite
我在FreeBSD 8.1中遇到这个问题:
- No module named _sqlite3 -
这是通过站在港口———-解决
/usr/ports/databases/py-sqlite3
之后可以看到:
OK ---------- '>>>' import sqlite3 ----- '>>>' sqlite3.apilevel ----- '2.0'
检查你的settings.py文件。 你不只是写数据库引擎的“sqlite”而不是“sqlite3”?
我发现很多人遇到这个问题,因为我自己的vps(cent os 7 x64)上的多版本的Python,我用这种方式解决了这个问题:
-
find文件“_sqlite3.so”
find / -name _sqlite3.so
out:
/usr/lib64/python2.7/lib-dynload/_sqlite3.so
-
find你想使用的Python标准库的目录,
对我来说
/usr/local/lib/python3.6/lib-dynload
-
复制文件:
cp /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload
最后,一切都会好的。
是python-pysqlite2软件包安装?
sudo apt-get install python-pysqlite2
你必须在centos或红帽,并自己编译python,这是python的bug在你的python源代码目录中执行此操作,并执行此操作
curl -sk https://gist.github.com/msabramo/2727063/raw/59ea097a1f4c6f114c32f7743308a061698b17fd/gistfile1.diff | patch -p1
我也有这个问题的Django的1.9,python3.5和Ubuntu的14.04我刚刚在每个命令之前添加sudo,这就解决了我的问题的例子
sudo python manage.py migrate sudo python manage.py runserver
下载sqlite3:
wget http://www.sqlite.org/2016/sqlite-autoconf-3150000.tar.gz
按照以下步骤进行安装:
$tar xvfz sqlite-autoconf-3071502.tar.gz $cd sqlite-autoconf-3071502 $./configure --prefix=/usr/local $make install
您需要在您的python环境中安装pysqlite :
$ pip install pysqlite