[英]python win32api fails after using pyinstaller
我使用 pyinstaller 形成可执行文件后出现问题。 这段代码使用 function win32api.GetShortPathName 来检查文件是否存在于长文件名的路径中,单独运行 python 文件是没有问题的。 使用 pyinstaller 后,程序在相同的情况下失败。
Traceback (most recent call last):
File "pycopy.py", line 32, in cp
pywintypes.error: (3, 'GetShortPathNameW', 'Das System kann den angegebenen Pfad nicht finden.')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\program files\python37\lib\threading.py", line 926, in _bootstrap_inner
self.run()
File "c:\program files\python37\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "pycopy.py", line 131, in download
File "pycopy.py", line 83, in copyit
File "pycopy.py", line 36, in cp
pywintypes.error: (3, 'GetShortPathNameW', 'Das System kann den angegebenen Pfad nicht finden.')
错误的英文意思是:系统找不到路径
您需要在 Windows 10,版本 1607 和更高版本中启用长路径,将 longPathAware longPathAware
添加到应用程序清单:
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<ws2:longPathAware>true</ws2:longPathAware>
</windowsSettings>
</application>
或者在winapi的Unicode版本中添加“ \\?\
”前缀指定一个扩展长度的路径,例如“ \\?\D:\very long path
”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.