【问题标题】:How to resolve WinError 87 running py2exe on Win 10如何解决 WinError 87 在 Win 10 上运行 py2exe
【发布时间】:2021-07-23 00:29:23
【问题描述】:

甚至我的测试用例也出现了这个错误。

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 10 IoT 版本 1809 和 Python 3.9 上运行良好。但我真的不知道为什么
  • 看起来这被列为 py2exe 问题,并且被认为是特定于 Windows 版本的:github.com/py2exe/py2exe/issues/76

标签: python py2exe


【解决方案1】:

我对修复并不满意,但我偶然发现了解决此问题的方法。

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

我能够使用 Python 3.9 在 Win 10 IoT 版本 1809 上按预期工作

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

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

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

【讨论】:

    【解决方案2】:

    我相信我实际上偶然发现了一个更好的解决方案。通过从 Python.org 下载的安装程序进行安装,我能够让 py2exe 在两个版本的 Windows 10 上正常工作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-23
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 2022-06-23
      相关资源
      最近更新 更多