py2exe 并设置 setup.py 以从 argv 获取目标?

py2exe and setting up setup.py to get its target from argv?

我正在尝试从 .py 文件创建一个可执行文件,如果我按照 py2exe 教程所说的完全 做事,它就可以工作。我将 setup(console=["thingyIdLikeToDo.py"]) 放入我的 setup.py 文件,然后在我的控制台中输入 python setup.py py2exe,它就可以工作了。

但是。这意味着每当我想将另一个 python 文件制作成可执行文件时,我必须打开并编辑 setup.py。我宁愿做点别的:

from distutils.core import setup
from sys import argv
import py2exe

setup(console=[argv[1]])
##This was originally setup(console=["MyTargetFile.py"]) and it DOES work that way

然后输入python setup.py MyTargetFile.py py2exe。因为它是 invalid command name 'MyTargetFile.py'

我也尝试过更改顺序,使其成为 python setup.py py2exe MyTargetFile.py 并将 argv[1] 更改为 argv[2]。我收到完全相同的错误消息。

我的意思是,我确实有一种有效的方法可以将我的 .py 文件转换为 .exe 文件,但我真的很恼火,因为看起来应该如此简单的更改却不起作用。我在这里错过了什么?

您 运行 遇到了麻烦,因为 setup 正在使用 sys.argv。如果您将呼叫更改为 setup(console = [sys.argv.pop(1)],我相信您将不再踩 distutils 的脚趾,事情应该会顺利进行。