![](/img/trans.png)
[英]Flask: ModuleNotFoundError: No module named 'flask_sqlalchemy'
[英]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.