如何使用 PyInstaller 编译后修复启动时的错误 得到 pyodbc.



我用python编写了一个程序(pyodbctkinter)。我使用pyodbc连接到Microsoft访问数据库。

有连接代码:

import pyodbc
# Microsoft Access Database File
DBfile = 'GDP.mdb'
conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ='+DBfile)

当我在命令提示符(python myprogram.py)编译之前启动它时,它运行良好。使用 pyinstaller 进行编译时一切顺利,不会报告任何错误。

但是当尝试启动可执行文件时,它会显示主窗口 2 秒钟,然后消失。

当我在 pyinstaller 中使用 -d 标志打开调试模式时,它在启动可执行文件时显示以下错误:

Traceback (most recent call last):
File "<string>", line 62, in <module>
  pyodbc.Error: (
     'HY000', "[HY000] [Microsoft][Driver ODBC Microsoft Access]
     Can't find File'(Unknown)'. 
     (-1811) (SQLDriverConnect); [HY000] [Microsoft][Driver ODBC Microsoft Access]
     Can't find File'(Unknown)'.
     (-1811)")
RC: -1 from main


编辑
第一个错误消失了,得到了一个新的错误:

Traceback (most recent call last):
    File "", line 78, in 
File "pathtomyprogram buildpyi.win32GDPoutPYZ1.pyz/Tkinter", line 1564, in wm_iconbitmap
_tkinter.TclError: bitmap "icon.ico' not defined
RC: -1 from main

您需要使用绝对文件名,而不是本地文件:

import os
try:
    currdir = os.path.dirname(os.path.abspath(__file__))
except NameError:  # We are the main py2exe script, not a module
    import sys
    currdir = os.path.dirname(os.path.abspath(sys.argv[0]))
DBfile = os.path.join(currdir, 'GDP.mdb')

相关内容

  • 没有找到相关文章

最新更新