【问题标题】:How to create .exe file using Pyinstaller, which should accept command line argument while running with .exe如何使用 Pyinstaller 创建 .exe 文件,该文件在使用 .exe 运行时应接受命令行参数
【发布时间】:2020-10-23 14:27:32
【问题描述】:

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

ma​​in.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)

setup.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.x pyinstaller


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-12-25
      • 1970-01-01
      • 2022-11-06
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      相关资源
      最近更新 更多