我正在尝试在运行Django的VPS上运行Debian应用.5。当我运行演示应用时,会出现此错误:
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,还是有其他方法可以启动并运行此模块?
答案 0 :(得分:76)
您的makefile似乎没有包含相应的.so
文件。您可以通过以下步骤更正此问题:
sqlite-devel
(或libsqlite3-dev
)./configure --enable-loadable-sqlite-extensions && make && sudo make install
注意强>
sudo make install
部分将python版本设置为系统范围的标准,这可能会产生不可预见的后果。如果您在工作站上运行此命令,您可能希望将与现有的python一起安装,这可以通过sudo make altinstall
来完成。
答案 1 :(得分:74)
我遇到了同样的问题(在Ubuntu Lucid上从源代码构建python2.5
),import sqlite3
引发了同样的异常。我已经从包管理器安装了libsqlite3-dev
,重新编译了python2.5,然后导入了。
答案 2 :(得分:17)
在使用pyenv时,我在Ubuntu上遇到了与Python 3.5相同的问题。
如果您使用pyenv安装python,它会被列为common build problems之一。要解决此问题,请删除已安装的python版本,安装需求(针对此特定情况libsqlite3-dev
),然后重新安装python版本。
答案 3 :(得分:17)
这就是我为了让它发挥作用所做的。
我正在使用安装了python 2.7.5的pythonbrew(使用pip)。
我首先做了Zubair(上图)所说的并运行了这个命令:
sudo apt-get install libsqlite3-dev
然后我运行了这个命令:
pip install pysqlite
这解决了数据库问题,我在运行时得到了确认:
python manager.py syncdb
答案 4 :(得分:11)
安装sqlite-devel
包:
yum install sqlite-devel -y
从源代码重新编译python:
./configure
make
make altinstall
答案 5 :(得分:9)
我的_sqlite3.so位于/usr/lib/python2.5/lib-dynload/_sqlite3.so中。从你的路径来看,你应该有文件/usr/local/lib/python2.5/lib-dynload/_sqlite3.so。
尝试以下方法:
find /usr/local -name _sqlite3.so
如果找不到该文件,则Python安装可能出错。如果是,请确保它安装的路径位于Python路径中。在Python shell中,
import sys
print sys.path
就我而言,/ usr / lib / python2.5 / lib-dynload在列表中,因此它能够找到/usr/lib/python2.5/lib-dynload/_sqlite3.so。
答案 6 :(得分:7)
我最近尝试在我的Ubuntu 11.04桌面上安装python 2.6.7以进行一些开发工作。遇到类似的问题到这个线程。我通过以下方式修改它:
调整setup.py文件以包含正确的sqlite dev路径。来自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 /'。
运行make之后我没有得到任何警告说没有构建sqlite支持(即,它构建正确:P),但是在运行make install
之后,sqlite3仍然没有导入相同的“ ImportError: No module named _sqlite3" whe running "import sqlite3
”。
因此,库已编译,但未移至正确的安装路径,因此我复制了.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/
- 这些是我的构建路径,您可能需要将它们调整为你的设置)。
瞧! SQLite3支持现在可以使用。
答案 7 :(得分:7)
我发现很多人都遇到这个问题,因为多版本的Python, 在我自己的vps(cent os 7 x64)上,我用这种方式解决了它:
找到文件&#34; _sqlite3.so&#34;
find / -name _sqlite3.so
out:/usr/lib64/python2.7/lib-dynload/_sqlite3.so
找到你想要使用的python标准库的目录,
对我来说/usr/local/lib/python3.6/lib-dynload
复制文件:
cp /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload
最后,一切都会好的。
答案 8 :(得分:5)
这在Redhat Centos 6.5中对我有用:
yum install sqlite-devel
pip install pysqlite
答案 9 :(得分:2)
我在FreeBSD 8.1中遇到了问题:
- No module named _sqlite3 -
通过端口----------
解决/usr/ports/databases/py-sqlite3
之后可以看到:
OK ----------
'>>>' import sqlite3 -----
'>>>' sqlite3.apilevel -----
'2.0'
答案 10 :(得分:2)
对于具有Redhat 7或Centos 7的Python 3.7.8。
$ yum install sqlite-devel
$ ./configure --enable-optimizations --enable-loadable-sqlite-extensions
$ make install
答案 11 :(得分:2)
令我感到失望的是,这个问题一直存在到今天。因为我最近一直在尝试在CentOS 8.1上安装vCD CLI,所以在尝试运行它时出现相同的错误,对此我表示欢迎。在我的情况下,我必须解决的方法如下:
我一直在这样做,以创建有关如何安装vCD CLI和VMware Container Service Extension的不同博客。我最终捕获了用于解决该问题的步骤,并将其放在单独的博客文章中:
我希望这会有所帮助,因为尽管上面的提示帮助我找到了解决方案,但我不得不将其中的一些结合起来并进行一些修改。
答案 12 :(得分:2)
为在此页面上搜索Windows操作系统解决方案的所有人提供答案:
如果尚未安装pysqlite3或db-sqlite3,则必须安装。您可以使用以下安装。
对我来说,问题出在sqlite3的DLL文件中。
解决方案:
我从sqlite site获取了DLL文件。这可能会根据您的 版本的python安装。
答案 13 :(得分:2)
我的python是从源代码构建的,原因是在exec配置时缺少选项 python版本:3.7.4
./configure --enable-loadable-sqlite-extensions --enable-optimizations
make
make install
固定
答案 14 :(得分:1)
sqlite3
随Python一起提供。我也遇到了同样的问题,我刚刚卸载了python3.6
,然后又重新安装了它。
卸载现有的python:
sudo apt-get remove --purge python3.6
安装python3.6:
sudo apt install build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
tar xvf Python-3.6.0.tar.xz
cd Python-3.6.0/
./configure
sudo make altinstall
答案 15 :(得分:1)
检查settings.py文件。 您是不是只为数据库引擎编写“sqlite”而不是“sqlite3”?
答案 16 :(得分:0)
我遇到了同样的问题,上面的回答没有对我有用 但现在我通过
修复了它只需删除python.pip
和sqlite3
并重新安装
sudo apt-get remove python.pip
sudo apt-get remove sqlite3
现在再次安装
sudo apt-get install python.pip
sudo apt-get install sqlite3
在我的情况下,再次安装sqlite3
时显示出一些错误
然后我输入了
sqlite3
检查它是否已被删除,并开始解压缩
安装sqlite3
后
fireup终端并写下
sqlite3
database.db
(创建数据库)我相信这一定会对你有所帮助
答案 17 :(得分:0)
是否已安装python-pysqlite2软件包?
sudo apt-get install python-pysqlite2
答案 18 :(得分:0)
你必须使用centos或redhat并自己编译python, 这是python的bug 在您的python源代码目录中执行此操作并在下面执行此操作
curl -sk https://gist.github.com/msabramo/2727063/raw/59ea097a1f4c6f114c32f7743308a061698b17fd/gistfile1.diff | patch -p1
答案 19 :(得分:0)
如果您使用的是 FreeBSD,请尝试像这样安装 sqlite。
pkg install py27-sqlite3-2.7.10_6
答案 20 :(得分:-1)
下载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
答案 21 :(得分:-2)
尝试复制_sqlite3.so
,以便Python可以找到它。
它应该很简单:
cp /usr/lib64/python2.6/lib-dynload/_sqlite3.so /usr/local/lib/python2.7/
相信我,尝试一下。
答案 22 :(得分:-3)
您需要在python环境中安装pysqlite:
$ pip install pysqlite