首页 > 解决方案 > 如何使用 Pyinstaller 创建 .exe 文件,该文件在使用 .exe 运行时应接受命令行参数

问题描述

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

主要.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)

设置.py

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"

在这里,我传递了 2 个参数,就像运行 main.py 时使用的一样。因此,对于此错误:

系统无法执行指定的程序。

你能帮忙吗,如何解决这个问题?如何将 .exe 文件制作为接受命令。

标签: python-3.xpyinstaller

解决方案


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


推荐阅读