2

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

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 解释器优先考虑这个而不是机器上的那个。我删除了它,现在它工作正常。

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

4

0 回答 0