如何在 Win 10 上解决 WinError 87 运行 py2exe

How to resolve WinError 87 running py2exe on Win 10

甚至我的测试用例也出现此错误。

test.py 的内容是:

print("Hello World")

setup2.py 是:

from distutils.core import setup
import py2exe

setup(console=['test.py'])

当我以管理员身份 运行 cmd 并尝试 运行 'python setup2.py py2exe' 我得到以下信息:

>python setup2.py py2exe
running py2exe

  2 missing Modules
  ------------------
? _posixshmem                         imported from multiprocessing.resource_tracker, multiprocessing.shared_memory
? readline                            imported from cmd, code, pdb
Building 'dist\test.exe'.
error: [WinError 87] The parameter is incorrect.

构建环境为: Windows 10 版本 20H2,包含所有最新更新 Python 3.8.6 py2exe 0.10.4.0

关于如何解决此错误的任何想法?

我看到一条线索表明它与 unicode 字符有关,并已通过 simpleprint 解决,但我不确定如何实现它

我对这个修复不是很满意,但我偶然发现了解决这个问题的方法。

我猜这是 Windows 基于此处发现的特定版本: https://github.com/py2exe/py2exe/issues/76

我能够在 Python 3.9

的 Win 10 IoT 版本 1809 上按预期工作

在尝试 运行 生成的 *.exe 时,我不断收到有关未找到模块 packaging.version 的错误。这是基于这个答案修复的: https://github.com/pyinstaller/pyinstaller/issues/2162

通过将以下导入添加到主 *.py 文件(test.py 在我最初发布的示例中)

import packaging
import packaging.version
import packaging.specifiers
import packaging.requirements

我相信我确实偶然发现了更好的解决方案。通过从 Python.org.

下载的安装程序进行安装,我能够让 py2exe 在 Windows 10 的两个版本上正常工作

当我使用 Windows 商店的 Python 安装时,我遇到了这个问题。使用安装程序中的 Python,它似乎可以工作