【问题标题】:pyinstaller to creating wrong 1 _MEIxxxx folder, but trying to open anotherpyinstaller 创建错误的 1 _MEIxxxx 文件夹,但试图打开另一个
【发布时间】: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


【解决方案1】:

错误(在这种情况下)是 pyinstaller 或 python 的安装损坏,将其从计算机中删除并重新安装。

【讨论】:

    猜你喜欢
    • 2016-10-02
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    相关资源
    最近更新 更多