【发布时间】:2022-12-17 20:43:05
【问题描述】:
如果您遇到这种情况,错误(在这种情况下)是 pyinstaller 或 python 安装损坏,请将其从计算机中删除并重新安装。
当尝试使用 pyinstaller 创建一个 exe 时,它工作正常并且包含捆绑的 .dll 文件,它解压缩 _MEI 文件夹和正确的位置的必要文件。但是我创建了一个名为 _MEIxxx 但试图打开一个不存在的 _MEIxxY(是的,每次启动时都会更改名称)
我看不到任何可以手动设置 _MEI 文件夹名称的地方,这样会更容易。
我正在运行的 cmd 命令是:
pyinstaller script.py --add-data "PATH TO DLL\python39.dll;test" -F --runtime-tmpdir .
可重现的问题:
使用 python 3.9 创建一个新的 .py 项目(我使用 pycharm) 包括以下代码:
print("HI")
然后在cmd中使用:
pyinstaller main.py -F (we want it to be a onefile exe)
然后将.exe文件复制到另一台电脑 这里我们用CMD运行它,看看错误输出。
它返回错误:
Error loading Python DLL: "path to local\Temp\_MEIXXXX\python39.dll
【问题讨论】:
-
@Alexander 最小示例:创建一个新的 python 文件,不需要其中的代码来重现错误。使用 pyinstaller 创建一个 .exe 文件
pyinstaller main.py --add-data "PATH TO DLL\python39.dll;asset" -F --runtime-tmpdir .因为 .dll 文件需要在另一台可能没有相同 python 版本的计算机上运行。 -
在另一台电脑用cmd打开时,报错:加载 Python DLL“C:\Users\Frederik\Desktop\new_MEI181682\python39.dll”时出错。 LoadLibrary:找不到指定的模块。有时它会创建 _MEI 文件夹而不删除它,在该文件夹中可以找到 .dll 文件。
-
是的,我是这么认为的,这样做是为了确保它包含在正确的名称和所有内容中。我不?我可以看到它会自行处理,我认为它这样做是为了能够运行/编译 .exe 文件,因为计算机没有安装相同的 python 版本。
-
当使用 pyinstaller 创建 .exe 并将 .exe 文件移动到另一台计算机时,由于它需要 python39.dll(或用于制作它的任何版本的 python),它无法运行,脚本本身可以有零代码,或者作为里面有很多代码而不改变错误。因此它正在使用 python.dll 文件进行编译,但是在新电脑上启动它时,找不到 dll 文件
-
如果我不这样做,我会得到同样的错误,因为它无法找到 pyhton39.dll
标签: python python-3.x pyinstaller