Python 2 到 Python 3 的转换:在 pyz 中找不到__main__模块 [关闭]

Python 2 to Python 3 Conversion: Can't find __main__ module in pyz [closed]

提问人:Teodor 提问时间:9/6/2021 最后编辑:Teodor 更新时间:9/7/2021 访问量:248

问:


这个问题是由错别字或无法再现的问题引起的。虽然类似的问题可能在这里是主题,但这个问题的解决方式不太可能帮助未来的读者。

2年前关闭。

我正在努力将 python2 项目移植到 python3,同时保持与 python2 的兼容性。 我开始修复一些小问题:缩进、打印调用、一些使用 six 的导入等。

Makefile 创建一个预置了 python 标头的 zip 存档,因此它会生成一个 pyz 文件。在此存档的根目录中,有一个__main__.py文件。

当我使用 python3 运行存档时,它给出以下错误:

# python3 proj.pyz

/usr/bin/python3:在“proj.pyz”中找不到“__main__”模块

如果我运行__main__.py文件而不是存档,就会发生一件有趣的事情,它的工作方式与在 python2 上的工作方式相同。此外,如果我使用 python2 运行 pyz,它也可以工作。 知道为什么会这样吗?

固定:

经过一些调试,发现包内有一个 runpy.py(用于 python 2)脚本。正因为如此,python 解释器优先考虑这个,而不是机器上的那个。我删除了它,现在它工作正常。

注意: 我把问题留在这里,因为也许有人会需要这个。

蟒蛇 python-3.x 嵌入式 linux python-2to3 pyz

评论


答: 暂无答案