簡體   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