繁体   English   中英

使用 pyinstaller 后 python win32api 失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM