WARNING: file already exists but should not: C:\…\…\…\Local\Temp\_MEI58962\include\pyconfig.h

在使用 Pyinstaller 生成 exe 程序时,由于没有用调试模式,在打开生成的 exe 时跳出告警:

WARNING: file already exists but should not: C:\Users\maydolly\AppData\Local\Temp\_MEI127362\Include\pyconfig.h

解决方法之一:

在生成的目标文件夹下,编辑 .spec 文件,在 a = Analysis(… 后面添加:

  1. for d in a.datas:
  2.     if ‘pyconfig’ in d[0]:
  3.         a.datas.remove(d)
  4.         break

然后不再使用指令 python pyinstaller.py  -F XXX.py 而是换成

python pyinstaller.py -F XXX.spec

对,就是用spec文件代替之前的 py 文件。如果需要生成不带调试窗口的文件,需要把 exe 选项中的 console=TRUE 改为 console=False .

附完整 spec 文件:

  1. # -*- mode: python -*-
  2. a = Analysis([‘C:\\\xb0\xd9\xb6\xc8\xd4\xc6\xcd\xac\xb2\xbd\xc5\xcc\\documents\\python\\HFFS\\src\\hffs.py’],
  3.              pathex=[‘C:\\Python27\\PyInstaller-2.1\\hffs’],
  4.              hiddenimports=[],
  5.              hookspath=None,
  6.              runtime_hooks=None)
  7. for d in a.datas:
  8.     if ‘pyconfig’ in d[0]:
  9.         a.datas.remove(d)
  10.         break
  11. pyz = PYZ(a.pure)
  12. exe = EXE(pyz,
  13.           a.scripts,
  14.           a.binaries,
  15.           a.zipfiles,
  16.           a.datas,
  17.           name=’hffs.exe’,
  18.           debug=False,
  19.           strip=None,
  20.           upx=True,
  21.           console=False )

解决方法之二:

修改文件 PyInstaller-2.1–>PyInstaller–>build.py

  1. Go to C:\Python27\Lib\site-packages\PyInstaller\build.py
  2. Find the def append(self, tpl): function.
  3. Change if tpl[2] == "BINARY": to if tpl[2] in ["BINARY", "DATA"]:

注意,上例中的地址 C:\Python27\Lib\site-packages\Pyinstaller\build.py是你把pyinstaller装到python目录中的情况下,像我没有安装,直接把pyinstaller随意放一个位置的,就要在 pyinstaller 的安装目录下修改。

打赏
原文链接:,转发请注明来源!
STM

发表评论