5

我用 python (pyodbctkinter) 编写了一个程序。我曾经pyodbc连接到 Microsoft Access 数据库。

有连接代码:

import pyodbc

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

当我在命令提示符 ( ) 中编译之前启动它时,python myprogram.py它工作得很好。编译pyinstaller一切顺利时,没有报错。

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

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

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 "path\to\my\program\ build\pyi.win32\GDP\outPYZ1.pyz/Tkinter", line 1564, in wm_iconbitmap
_tkinter.TclError: bitmap "icon.ico' not defined
RC: -1 from main
4

1 回答 1

5

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

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')
于 2012-09-20T14:55:38.007 回答