Я пытаюсь создать один файл .exe для запуска на любой машине windows, но у меня возникла проблема с pysqlcipher. Я вернулся к некоторому коду basi c, который просто создает простую базу данных с ключом, на моей машине dev все работает нормально, использую ли я файл python или скомпилированный exe. Кажется, мне не хватает библиотеки, пути или того и другого? Я пробовал добавлять различные элементы с помощью --add-data, но потратил несколько часов и не добился прогресса. Вот базовый c бит 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()
Когда я запускаю exe на другом windows 10 P C, я получаю эту ошибку
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
Ошибка ссылается на путь на моем устройстве P C, а также на строку 33 в dbapi2.py, которая: -
from pysqlcipher3._sqlite3 import *
Я пробовал добавлять различные файлы при запуске pyinstaller, но у меня ничего не получается, я уверен, что в этом нет ничего простого, но нужна помощь, пожалуйста.