【发布时间】:2015-11-23 23:15:09
【问题描述】:
我已经使用 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,一切正常吗?我正在尝试将打包问题与模块 sqlite3 的任何其他潜在问题分开。
-
是的,它有效!只有在创建包之后才会出现上述问题。
-
尝试创建一个virtualenv,然后一旦你激活了virtualenv,尝试给出问题的命令,看看模块是否存在。由于我安装了不同的库,因此很难复制您的问题。
-
这是我第一次使用虚拟环境。我尝试了以下。不知道你是不是同一个意思。让我知道我是否错了。我创建了一个虚拟环境 venv。并在激活它(venv/bin/activate)后将我的模块(没有创建包)作为 venv/bin/python mymodule.py 运行,一切正常。
-
您使用的是哪个版本的 PyInstaller? PyInstaller 安装目录下有
hooks/hook-sqlite3.py文件吗?
标签: python sqlite pyinstaller