加载python27.dll时出现pyinstaller错误

13 投票
5 回答
33120 浏览
提问于 2025-04-18 16:29

我已经成功编辑了我的spec文件,并把数据文件夹添加到了里面。构建的时候没有问题,但还是无法访问数据。当我尝试运行编译好的.exe文件时,出现了这个错误:Error loading Python DLL: C:\Users\Sal\AppData\Local\Temp\_MEI60122\python27.dll (error code 126)

编辑 1 - 我还是没有搞明白,我的spec文件看起来是这样的:

a = Analysis(['Clock_In.py'],
             pathex=['C:\\Users\\Sal\\Desktop'],
             hiddenimports=[],
             hookspath=None,
             runtime_hooks=None)
a.datas += [('CO_time.pkl','CO_time.pkl', 'DATA')]
a.datas += [('hours.pkl','hours.pkl', 'DATA')]
a.datas += [('Obj_file.pkl','Obj_file.pkl', 'DATA')]
a.datas += [('weekly_hours_dict.pkl','weekly_hours_dict.pkl', 'DATA')]



pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.datas,
          a.binaries,       
          a.scripts,
          exclude_binaries=True,
          name='Clock_In.exe',
          debug=False,
          strip=None,
          upx=True,
          console=True, 
          icon="C:\Users\Sal\Desktop\Raindropmemory-Legendora-BrokenSword.ico")
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=None,
               upx=True,
               **name='Clock_In')

编辑 2

我在64位的操作系统(Windows 8)上使用的是32位的Python,有人提到这可能是导致我问题的原因,但我还是没有找到解决办法。

编辑 3

所以我刚刚尝试下载了64位的Python,并把它放到了系统路径里。用我的.spec文件运行了pyinstaller,结果还是出现了完全相同的错误代码!这是怎么回事啊!不过有个有趣的细节是,icon="C:\Users\Sal\Desktop\Raindropmemory-Legendora-BrokenSword.ico")这条语句在spec文件中执行并成功更新了图标,而之前是无法做到的。

编辑 4

这是我在代码中用来获取MEIPASS的语句,直接来自文档。

if getattr(sys, 'frozen', False):
# we are running in a |PyInstaller| bundle
basedir = sys._MEIPASS
else:
# we are running in a normal Python environment
basedir = os.path.dirname(__file__)

5 个回答

0

一个简单的方法就是删除以下文件夹里的所有东西:
C:\Users\xxx\AppData\Roaming\pyinstaller。
我在清理这个文件夹后解决了问题。
也可以把上次Pyinstaller创建的所有文件都删掉。

0

我遇到了同样的问题,最后发现原因是杀毒软件把“python27.dll”当成了木马病毒,所以在程序尝试加载这个文件时,它就把它删除了。

解决这个问题的方法是把“...\AppData\Local\Temp\”添加到信任区。

1

我在Windows 10上使用Python 3.7时也遇到了同样的问题。

我通过添加 --upx-exclude"vcruntime140.dll" 这个选项来解决了这个问题。

更多信息可以在 这里 找到。

9

我在创建一个独立的可执行文件时遇到了同样的错误,像这样:

pyi-makespec.exe -F program.py
## Customize script.spec just created

还有

pyinstaller.exe -F script.spec

所以我需要以管理员身份运行这个可执行文件才能解决问题。

我不知道具体原因,因为那不是我的电脑。我在自己的电脑上先做了一遍,效果很好,但在那台电脑上就不行。可能是某些安全设置或者是 的安装有点奇怪。不过我把这个解决办法放在这里,因为我找了好几个小时都没找到解决方案,而这个方法很简单,可以帮你节省一些时间,避免去尝试更复杂的方法。

4

你需要把那段代码放在你要转换成可执行文件的Python脚本的最上面,而不是放在说明文档里,也不是放在单独的脚本中。我在这里找到一个例子:

https://shanetully.com/2013/08/cross-platform-deployment-of-python-applications-with-pyinstaller/

撰写回答