Проблема создания одного файла exe с помощью pyinstaller и pysqlcipher - PullRequest
1 голос
/ 07 мая 2020

Я пытаюсь создать один файл .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, но у меня ничего не получается, я уверен, что в этом нет ничего простого, но нужна помощь, пожалуйста.

...