【发布时间】:2020-08-22 19:08:29
【问题描述】:
我正在尝试创建一个文件 .exe 以在任何 Windows 机器上运行,但我遇到了 pysqlcipher 的问题。我回到了一些基本代码,这些代码只是用一个键创建了一个简单的数据库,在我的开发机器上,无论我使用 python 文件还是编译的 exe,都可以正常工作。我似乎缺少库、路径或两者兼而有之?我尝试使用 --add-data 添加各种项目,但花了几个小时但没有取得任何进展。这是python的基本部分:-
from pysqlcipher3 import dbapi2 as sqlite
import os
import sys
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
conn = sqlite.connect('test.db')
c = conn.cursor()
c.execute("PRAGMA key='password'")
c.execute('''create table stocks (date text, trans text, symbol text, qty real, price real)''')
c.execute("""insert into stocks values ('2006-01-05','BUY','RHAT',100,35.14)""")
conn.commit()
c.close()
当我在另一台 Windows 10 PC 上运行 exe 时,出现此错误
Traceback(最近一次通话最后一次): 文件“testdb.py”,第 1 行,在 文件“c:\users\xxx\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”,第 623 行,在 exec_module 文件“site-packages\pysqlcipher3-1.0.3-py3.8-win-amd64.egg\pysqlcipher3\dbapi2.py”,第 33 行,在 ModuleNotFoundError:没有名为“pysqlcipher3._sqlite3”的模块 [9248] 无法执行脚本 testdb
错误引用了我的开发 PC 上的路径,还引用了 dbapi2.py 中的第 33 行,即:-
from pysqlcipher3._sqlite3 import *
我尝试在运行 pyinstaller 时添加各种文件,但我没有取得任何进展,我确信这并不简单,但需要帮助。
【问题讨论】:
标签: python pyinstaller pysqlite pysqlcipher