【问题标题】:"No module named '_sqlite3'" when running Django's "python3 manage.py migrate"运行 Django 的“python3 manage.py migrate”时“没有名为 '_sqlite3' 的模块”
【发布时间】:2018-12-03 08:29:31
【问题描述】:

我正在使用 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

【问题讨论】:

  • 当你在终端运行命令 sqlite3 时,你会得到sqlite> 提示
  • 是的,我明白了
  • 但不起作用
  • 使用sudo add-apt-repository ppa:jonathonf/backportssudo apt-get update && sudo apt-get install sqlite3安装sqlite3
  • 您使用的是哪个 Django 版本?我有同样的问题。然后我降级了 Django,一切又恢复了。

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


【解决方案1】:

这与ModuleNotFoundError: No module named '_sqlite3'有关

问题可能是您的 Python 安装不包含 sqlite3,它通常在标准库中。

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

【讨论】:

  • 我必须卸载 python 才能运行该命令还是我可以使用它
  • 您可以在不卸载 Python 的情况下运行该命令,但它不会解决您的问题。
  • @NikeshThapa 您使用的是什么版本的 Python?你是怎么安装的? (一些回购?编译它?)
  • sudo apt install python3
【解决方案2】:

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

安装 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

【讨论】:

    【解决方案3】:

    我使用的是 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”测试)

    【讨论】:

      猜你喜欢
      • 2019-09-03
      • 2012-06-02
      • 1970-01-01
      • 2021-11-02
      • 2010-11-15
      • 2021-07-08
      • 2015-08-26
      相关资源
      最近更新 更多