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 的脚趾,事情应该会顺利进行。
我正在尝试从 .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 的脚趾,事情应该会顺利进行。