我正在使用Debian“ Linux mint 19.1”和python 3.7.4,并且系统已经有2.7和3.6版本,我创建了一个环境,但是当我开始使用db.create_all()
创建数据库文件时,我有了“ ..
ModuleNotFoundError:没有名为“ _sqlite3”的模块“
我尝试通过安装此软件包[quick-sqlite,pysqlite3]
db.create_all() 追溯(最近一次通话): dbapi中的文件“ /media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py”,行338 从pysqlite2导入dbapi2作为sqlite ModuleNotFoundError:没有名为“ pysqlite2”的模块
在处理上述异常期间,发生了另一个异常:
回溯(最近通话最近): 文件“”,第1行,位于 在create_all的第1033行,文件“ /media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/flask_sqlalchemy/init.py” self._execute_for_all_tables(app,bind,'create_all') 在_execute_for_all_tables中的第1025行中,文件“ /media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/flask_sqlalchemy/init.py” op(bind = self.get_engine(app,bind),** extra) 在get_engine的第956行中,文件“ /media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/flask_sqlalchemy/init.py” 返回connector.get_engine() 在get_engine的第561行中,文件“ /media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/flask_sqlalchemy/init.py” self._engine = rv = self._sa.create_engine(sa_url,选项) 在create_engine的第966行中,文件“ /media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/flask_sqlalchemy/init.py” 返回sqlalchemy.create_engine(sa_url,** engine_opts) 在create_engine中的第435行,文件“ /media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/sqlalchemy/engine/init.py” 返回strategy.create(* args,** kwargs) 在创建的文件“ /media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py”中,第87行 dbapi = dialect_cls.dbapi(** dbapi_args) dbapi中的第343行的文件“ /media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py” 提高e dbapi中的第341行的文件“ /media/gabalawy/projetcs/training/Flask_Blog/env3.7/lib/python3.7/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py” 从sqlite3作为sqlite导入dbapi2#尝试使用2.5+ stdlib名称。 在第23行的文件“ /usr/local/lib/python3.7/sqlite3/init.py”中 从sqlite3.dbapi2导入* 文件“ /usr/local/lib/python3.7/sqlite3/dbapi2.py”,第27行,在 从_sqlite3导入* ModuleNotFoundError:没有名为“ _sqlite3”的模块
答案 0 :(得分:1)
我已经安装了“ 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.
答案 1 :(得分:0)
我相信_sqlite3
导入是内部导入,应该可以从标准python安装中获得。缺少它的事实表明您的python构建存在问题(您是否自己编译过)。
我能够通过首先确保已安装ncurses
然后安装来解决此问题:
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
)