运行Django的“ python3 manage.py migration”时,“没有名为'_sqlite3'的模块”

时间:2018-06-24 16:52:18

标签: python django python-3.x sqlite ubuntu-16.04

我正在使用Ubuntu 16.04,并且尝试学习Django,并将其安装在虚拟环境中并命名为myenv,然后启动了一个名为mysite的项目。 当我尝试运行manage.py文件时,它一直说未安装sqlite3。我确实安装了它,但是它说的是同样的错误。当我运行python3 manage.py migrate时,它说:

"ModuleNotFoundError: No module named '_sqlite3'"

我使用以下命令安装了sqlite:

sudo add-apt-repository ppa:jonathonf/backports
sudo apt-get upgrade
sudo apt-get install sqlite3

3 个答案:

答案 0 :(得分:0)

这与ModuleNotFoundError: No module named '_sqlite3'

有关

问题可能是您的Python安装程序不包含sqlite3,该文件通常在标准库中。

您应该尝试安装libsqlite3-dev(sudo apt install libsqlite3-dev),然后重新安装Python。

答案 1 :(得分:0)

我在Ubuntu Xenial 3.7中也使用Python 16.04看到了相同的错误,以下内容为我修复了该错误:

安装libsqlite3:

sudo apt install libsqlite3-dev

重新安装Python 3.7:

wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
tar -xvf Python-3.7.3.tgz 
cd Python-3.7.3/
./configure
make
sudo make install
sudo ln -s /usr/local/bin/python3.7 /usr/bin/python3

答案 2 :(得分:0)

我使用的是python 3.6和Django版本1.11.3,在执行以下步骤时,我遇到了相同的错误:

  1. 安装pysqlite3 pip install pysqlite3

  2. base.py第33行更改为:

from pysqlite3 import dbapi2 as Database

base.py文件位于您的virtualenv的“ lib”目录下:path_to_virtualenv/lib/python_interpreter_name/site-packages/django/db/backends/sqlite3/base.py

就我而言:path_to_my_venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py

更新: 如果在较新的django版本(例如“ 2.0.7”)中遇到相同的问题,则应更改base.py的第8行。(已通过django版本“ 2.0.7”测试)