从py创建exe,默认情况下会在执行时传递争论?

时间:2018-08-14 08:07:18

标签: python arguments cross-compiling pyinstaller py2exe

如果我们假设这是test.py代码:

import sys

for arg in sys.argv:
    print arg
print "Hello World!"

通过使用诸如auto-py-to-exepyinstallerpy2exe或...之类的工具,我们如何制作一个默认情况下在执行时传递特定参数的exe?例如:通过使用工具,我们从test.py中创建一个test.exe并通过执行test.exe将使用foobar作为arg,test.exe执行的输出为:

foobar
Hello World!

我已经测试了auto-py-to-exe和pyinstaller,但是两者都没有这样的选项。我应该提到,我对使用[any]工具更感兴趣,而不仅仅是修改python源。因为在较大的来源中修改可能是一项艰巨的任务。

1 个答案:

答案 0 :(得分:0)

我建议使用pythons ArgumentParser(https://docs.python.org/2/howto/argparse.html),并为您的参数设置一个default=值。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("argument", default="foobar")
args = parser.parse_args()

print arg
print "Hello World!"

您还可以重组调用的python脚本,以使用所需的参数来实现“ main”方法:

def main(argument):
    print argument
    print "Hello World!"

对于您的特定可执行文件,只需创建单独的包装脚本即可:

foobar.py

from test import main
test("foobar")

anotherfoobar.py

from test import main
test("anotherfoobar")

现在,您可以使用pyinstaller分别创建foobar.py和另一个foobar.py的可执行文件。