繁体   English   中英

从sqlite3转储数据时出错

[英]Error while dumping out data from sqlite3

我已经使用sqlite3_connection.iterdump()方法转储sqlite3数据库。

我已经在python中编写了一个模块,该模块转储了sqlite3表。 如果我在计算机上本地运行该模块,则该模块可以正常运行。

并且,在使用pyinstaller创建模块的python软件包之后,如果我尝试转储数据库,则会出现错误提示

"ImportError: No module named sqlite3.dump"

知道如何解决这个问题。 还是有其他方法可以获取sqlite3转储。

这是我要转储数据库的操作。

#Export database
def export_database(self):
    database_string = ""
    for line in self.conn.iterdump():
            database_string += '%s\n' % (line)
    return database_string

#Import database
def import_database(self, database_string):
    self.cursor.executescript(database_string)

请验证您的PyInstaller安装目录下是否具有文件hooks/hook-sqlite3.py 如果没有,请安装最新的PyInstaller版本


如果您无法安装最新版本,请创建具有以下内容的文件hook-sqlite3.py

from PyInstaller.hooks.hookutils import collect_submodules
hiddenimports = collect_submodules('sqlite3')

生成时,将-放置钩文件的目录的路径作为--additional-hooks-dir参数的值提供,如下所示:

--additional-hooks-dir=<path_to_directory_of_hook_file>

根据下面的评论,似乎在构建时添加--hidden-import=sqlite3

无论您在哪里部署模块,都需要先安装sqlite3模块。 最有可能在您的本地环境中,该模块在通用python库中可用。 尝试使用virtualenv来避免这种类型的问题,您可以使用pip安装模块的所有要求。

Sqlite应该包含在Python安装中,但这取决于源,版本或安装方式。 有关更多详细信息,请参见此处: 如何将sqlite3安装到Python?

暂无
暂无

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

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