Python 使用pyinstaller和pysqlcipher创建一个文件exe时出现问题
我试图创建一个在任何windows计算机上运行的单文件.exe,但我遇到了pysqlcipher问题。我回到了一些基本的代码,这些代码只创建了一个简单的数据库和一个键,在我的开发机器上,无论我使用python文件还是编译的exe,都可以正常工作。我似乎错过了一个图书馆,一条小路,还是两者兼而有之?我曾尝试使用--add data添加无效项,但花费了数小时,没有取得任何进展。以下是python的基本部分:-Python 使用pyinstaller和pysqlcipher创建一个文件exe时出现问题,python,pyinstaller,pysqlite,pysqlcipher,Python,Pyinstaller,Pysqlite,Pysqlcipher,我试图创建一个在任何windows计算机上运行的单文件.exe,但我遇到了pysqlcipher问题。我回到了一些基本的代码,这些代码只创建了一个简单的数据库和一个键,在我的开发机器上,无论我使用python文件还是编译的exe,都可以正常工作。我似乎错过了一个图书馆,一条小路,还是两者兼而有之?我曾尝试使用--add data添加无效项,但花费了数小时,没有取得任何进展。以下是python的基本部分:- from pysqlcipher3 import dbapi2 as sqlite imp
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()
当我在另一台Windows10电脑上运行exe时,会出现此错误
回溯(最近一次呼叫最后一次):
文件“testdb.py”,第1行,在
exec_模块中的文件“c:\users\xxx\appdata\local\programs\python38\lib\site packages\PyInstaller\loader\pyimod03_importers.py”,第623行
文件“site packages\pysqlcipher3-1.0.3-py3.8-win-amd64.egg\pysqlcipher3\dbapi2.py”,第33行,在
ModuleNotFoundError:没有名为'pysqlcipher3.\u sqlite3'的模块
[9248]无法执行脚本testdb
该错误引用了my dev PC上的路径,还引用了dbapi2.py中的第33行,即:-
来自pysqlcipher3.\u sqlite3导入*
我试过在运行pyinstaller时添加各种文件,但我没有取得任何进展,我相信这并不简单,但需要帮助