在我的第一次尝试中,与py2exe捆绑在一起的pyQt应用程序拒绝连接到sqlite数据库,尽管它在python版本中工作。
我猜是库没有加载到.exe应用程序中的问题。我通过将sqlite DLL的完整路径包含到setup.py
文件中并将此DLL复制到可执行文件夹中,解决了这个问题。在
现在我想在.exe文件中包含这个DLL,以便对我的用户“隐藏”这个DLL。你知道怎么做吗?
我的电流设置.py公司名称:
from distutils.core import setup
import py2exe
setup(
windows=[{
"script": 'myscript.py'
}],
options={
'py2exe': {
"dll_excludes": [
"MSVCP90.dll",
"MSWSOCK.dll",
"mswsock.dll",
"powrprof.dll",
],
'includes': [
'sip',
'PyQt4.QtNetwork',
],
'bundle_files': 1,
}
},
data_files = [
'config.ini',
'template.htm',
# This is the File that I wish to be "hidden"
('sqldrivers', ('C:\Python27\Lib\site-packages\PyQt4\plugins\sqldrivers\qsqlite4.dll',)),
zipfile=None,
)
我遇到了同样的问题,而你已经解决了一半。问题的第一部分是您确定的,将文件放入EXE。我不能说你的py2exe解决方案的正确性,因为我正在使用pyinstaller,但这是一般的想法。您需要将qsqlite4.dll放入单个文件应用程序中的sqldrivers目录中。在
第二部分是main.py需要将路径添加到其运行目录中,该目录现在将包含该sqldrivers文件夹。您需要做的是获取main.py运行位置的相对路径,并将该目录设置为QT应用程序中的库路径。我对pyinstaller使用标准的resource_path()函数,但对py2exe使用类似的方法应该有效:
然后可以在应用程序的主函数中使用此代码
^{pr2}$加上日志,这是我的应用程序库路径()前后:
你可以把“\”替换成“/”,但我没有费心,它仍然适用于windows分隔符。在
相关问题 更多 >
编程相关推荐