Python 3.x 如何使用Pyinstaller创建.exe文件,Pyinstaller在使用.exe运行时应接受命令行参数

Python 3.x 如何使用Pyinstaller创建.exe文件,Pyinstaller在使用.exe运行时应接受命令行参数,python-3.x,pyinstaller,Python 3.x,Pyinstaller,我有一个main.py文件,它将接受2个参数,创建一个setup.py文件,并使用此文件通过Pyinstaller创建独立的应用程序ie.exe文件,如下所示: main.py: import sys import argparse parser = argparse.ArgumentParser(description='Display full name.') parser.add_argument("-f", '--firstname', type=str, defau

我有一个main.py文件,它将接受2个参数,创建一个setup.py文件,并使用此文件通过Pyinstaller创建独立的应用程序ie.exe文件,如下所示:

main.py

import sys
import argparse
parser = argparse.ArgumentParser(description='Display full name.')
parser.add_argument("-f", '--firstname', type=str, default='', help='first name.')
parser.add_argument("-l", '--lastname', type=str, default='', help='Last name.')
parsed_args = vars(parser.parse_args())
first_name = parsed_args['firstname']
last_name = parsed_args['lastname']
print("Hello " + first_name + " " + last_name)
from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
firstname = 0
lastname = 0
if '--firstname' in sys.argv:
    index = sys.argv.index('--firstname')
    sys.argv.pop(index)
    upload = sys.argv.pop(index)
if '--lastname' in sys.argv:
    index = sys.argv.index('--lastname')
    sys.argv.pop(index)
    token = sys.argv.pop(index)
print("firstName:", firstname)
print("lastName:", lastname)
setup(
    console=['main.py'],
    script_args=[firstname, lastname],
)
setup.py

import sys
import argparse
parser = argparse.ArgumentParser(description='Display full name.')
parser.add_argument("-f", '--firstname', type=str, default='', help='first name.')
parser.add_argument("-l", '--lastname', type=str, default='', help='Last name.')
parsed_args = vars(parser.parse_args())
first_name = parsed_args['firstname']
last_name = parsed_args['lastname']
print("Hello " + first_name + " " + last_name)
from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
firstname = 0
lastname = 0
if '--firstname' in sys.argv:
    index = sys.argv.index('--firstname')
    sys.argv.pop(index)
    upload = sys.argv.pop(index)
if '--lastname' in sys.argv:
    index = sys.argv.index('--lastname')
    sys.argv.pop(index)
    token = sys.argv.pop(index)
print("firstName:", firstname)
print("lastName:", lastname)
setup(
    console=['main.py'],
    script_args=[firstname, lastname],
)
我使用以下命令创建了setup.exe文件:

pyinstaller setup.py --onefile
我尝试以以下方式执行命令:

setup.exe --firstname "CLMSS" --lastname "BGMDDS"
在这里,我传递了两个参数,就像运行main.py时使用的一样。因此,对于此获取错误,如下所示:

系统无法执行指定的程序


你能帮我解决这个问题吗如何将as.exe文件设置为接受命令。

可能不是您正在寻找的解决方案,但对于其他对此有问题的人,我建议您使用
sys.argv[1]
获取参数,而不是使用argparse获取参数。它也可以正常工作,并且在
cmd

上非常友好地执行.exe。可能不是您正在寻找的解决方案,但是对于其他对此有问题的人,我建议您使用
sys.argv[1]
来获取参数,而不是使用argparse来获取参数。它也可以正常工作,在
cmd