我正在尝试创建一个文件.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时,出现此错误
跟踪(最近一次通话结束): 在第1行的文件“ testdb.py”中 文件``c:\ users \ xxx \ appdata \ local \ programs \ python \ python38 \ lib \ site-packages \ PyInstaller \ loader \ pyimod03_importers.py'',行623,位于exec_module中 在第33行中输入文件“ site-packages \ pysqlcipher3-1.0.3-py3.8-win-amd64.egg \ pysqlcipher3 \ dbapi2.py” ModuleNotFoundError:没有名为“ pysqlcipher3._sqlite3”的模块 [9248]无法执行脚本testdb
该错误引用了我的开发PC上的路径,还引用了dbapi2.py中的第33行,它是:-
from pysqlcipher3._sqlite3 import *
我已经在运行pyinstaller时尝试添加各种文件,但是我没有任何进展,我相信它并不简单,但需要帮助。