繁体   English   中英

python 3.7.4:FLASK_SQLALCHEMY 没有名为“_sqlite3”的模块

[英]python 3.7.4 : FLASK_SQLALCHEMY No module named '_sqlite3'

我正在使用 Debian“Linux mint 19.1”和 python 3.7.4,系统已经有 2.7 和 3.6 版本。 我创建了一个 env,但是当我开始使用db.create_all()创建数据库文件时,我有“...

ModuleNotFoundError: 没有名为“_sqlite3”的模块”

我已经尝试安装这个包 [ quick-sqlite , pysqlite3 ]

db.create_all() 回溯(最近一次调用):文件“/media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py” ,第 338 行,在 dbapi from pysqlite2 import dbapi2 as sqlite ModuleNotFoundError: No module named 'pysqlite2'

在处理上述异常的过程中,又发生了一个异常:

回溯(最近通话最后一个):文件“”,1号线,在文件“/media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/flask_sqlalchemy/初始化的.py”线1033,在create_all self._execute_for_all_tables(表观,绑定, 'create_all')文件“/media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/flask_sqlalchemy/ INIT py”为,第 1025 行,在 _execute_for_all_tables op(bind=self.get_engine(app, bind), **extra) 文件“/media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/ flask_sqlalchemy /初始化的.py “线路956,在get_engine回报connector.get_engine()文件” /media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/flask_sqlalchemy/初始化的.py “,第 561 行,在 get_engine self._engine = rv = self._sa.create_engine(sa_url, options) 文件中”/media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/ flask_sqlalchemy/ init .py”,第 966 行,在 create_engine 中返回 sqlalchemy.create_engine(sa_url, **e ngine_opts)文件“/media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/sqlalchemy/engine/初始化的.py”,线路435,在create_engine回报strategy.create(* ARGS , **kwargs) 文件“/media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py”,第 87 行,在 create dbapi = dialect_cls 中。 dbapi(**dbapi_args) 文件“/media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py”,第343行,dbapi raise e 文件“/media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py”,第341行,dbapi from sqlite3 import dbapi2 as sqlite # 尝试 2.5+ 标准库名称。 文件“/usr/local/lib/python3.7/sqlite3/初始化py”为23行,从sqlite3.dbapi2进口*文件“/usr/local/lib/python3.7/sqlite3/dbapi2.py”第 27 行,在 from _sqlite3 import * ModuleNotFoundError: No module named '_sqlite3'

我已经安装了“pysqlite3”

pip 安装 pysqlite3

并修改

“/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py”,第 341 行

from sqlite3 import dbapi2 as sqlite  # try 2.5+ stdlib name.

from pysqlite3 import dbapi2 as sqlite  # try 2.5+ stdlib name.

我相信_sqlite3导入是内部导入,应该可以从您的标准 python 安装中获得。 它丢失的事实表明您的python构建存在问题(您自己编译了吗)。

通过首先确保安装了ncurses然后安装,我能够在 suse 上解决这个问题:

zypper install python-curses

在 ubunti 上,我猜等价的是(虽然我不确定它的缺失会产生同样的错误):

sudo apt-get install libncursesw5-dev

(我完整的构建先决条件是:

sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM