使用 Pyinstaller 制作的 Python Exe 试图从错误的位置找到 dll
Posted
技术标签:
【中文标题】使用 Pyinstaller 制作的 Python Exe 试图从错误的位置找到 dll【英文标题】:Python Exe made with Pyinstaller is trying to find dll from wrong location 【发布时间】:2014-09-28 17:38:30 【问题描述】:我有一个在 32 位计算机上使用 pyinstaller 制作的 onefile 可执行文件。我确保在我的规范文件的二进制部分中包含必要的 dll 文件。我使用存档查看器验证了这些文件是否包含在内。
但是,当我尝试在已安装 Python 的 64 位计算机上运行 exe 文件时,它会尝试在 Python27/Scripts 文件夹中找到与其他 32 位 dll 不兼容的 dll 文件包含在exe文件中。
如何在我的 exe 文件中包含 32 位 dll 并让 64 位计算机在 exe 运行时访问它?
【问题讨论】:
【参考方案1】:这段代码似乎对加载 DLL 时搜索的路径设置了相当高的优先级。您可以将它放在程序入口点的开头。
try:
import win32api
win32api.SetDllDirectory(sys._MEIPASS)
except:
pass
【讨论】:
以上是关于使用 Pyinstaller 制作的 Python Exe 试图从错误的位置找到 dll的主要内容,如果未能解决你的问题,请参考以下文章
pyinstaller的用法,用python制作简单的exe小程序,详细的不能再详细了
使用 PyInstaller 制作的程序现在被 AVG 视为特洛伊木马