Python .exe проблема - PullRequest
       29

Python .exe проблема

0 голосов
/ 15 марта 2011

Я успешно создал исполняемую версию своего приложения.Это просто базовое приложение, связанное с базой данных.Таким образом, у него есть база данных и файл значков в том же каталоге, который называется «данные».Когда я пытаюсь добавить запись в свою базу данных с помощью файла .exe, он выдает ошибку, такую ​​как «невозможно открыть файл базы данных».Но нет проблем с файлом значков в том же каталоге.

Может ли кто-нибудь мне помочь?

Спасибо.

Вот мой setup.py:

from distutils.core import setup
import py2exe
from glob import glob

data_files = [("Microsoft.VC90.CRT", glob(r'c:\dev\ms-vc-runtime\*.*')),("data", glob('Veriler\*'))]

options = {
    'py2exe': {
        'dll_excludes': [
            'MSVCP90.dll'
        ]
    }
}

setup(windows=[{"script": "Nokta Ekleme.pyw","icon_resources":[(1,"Veriler\Alarko.ico")]}], options=options, data_files=data_files)

Ок, ребята.Я нашел решение.Целевые и исходные каталоги для файлов данных должны иметь одинаковые имена.Поэтому я изменил «Veriler» на «данные».Теперь все в порядке.

Ответы [ 2 ]

0 голосов
/ 15 марта 2011

Мои глобусы возвращают ожидаемые файлы.Они уже скопированы из «Veriler» в каталог «data» успешно после создания .exe.

И часть, которая добавляет запись в мою базу данных:

        con = lite.connect('data\noktalar.sdb')
        cur = con.cursor()
        ad = self.tc1.GetValue()
        cihaz = self.tc2.GetValue()
        tip = self.nokta_tipleri[self.CB1.GetCurrentSelection()] 
        miktar = self.sp.GetValue()


        cur.execute('insert into noktalar values(null, ?, ?, ?, ?)', (ad, cihaz, tip, miktar))
        con.commit()
        cur.close()
        con.close()
0 голосов
/ 15 марта 2011

Ваши глобусы возвращают ожидаемые файлы?Попробуйте print glob('Veriler\*').Возможно, вам потребуется указать полный путь к каталогу.

Другой вариант заключается в том, что библиотеки dll, необходимые для работы с вашей базой данных, пропущены.

Я бы порекомендовал pyInstaller вместо py2exe в любой день недели.хотя - вы можете обнаружить, что переключение на него может быть весьма значительным, поскольку он обрабатывает захват необходимых файлов, включая dll, которые могут быть вашей проблемой, гораздо лучше, чем py2exe.

...