【问题标题】:Calling Functions in an Executable from Python从 Python 调用可执行文件中的函数
【发布时间】:2022-10-21 01:29:00
【问题描述】:

我需要使用pyinstaller 创建一个包含许多功能的可执行文件。如何使用 Python 中的参数调用这些函数?我目前的方法是使用基于可选参数的条件。例如(未经测试):

#math_app.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-a", "--add", type=str, help="Add integers together")
parser.add_argument("-s", "--subtract", type=str, help="Subtract integers")
args = parser.parse_args()
if args.add:
    add_list = args.add.split(',')
    #add code here
elif args.subtract:
    sub_list = args.subtract.split(',')
    #subtract code here

其中,在使用 pyinstaller 编译后将像这样使用:

from subprocess import Popen, PIPE

p= Popen("math_app.exe --add=1,2,3 --subtract=10,5",stdin=PIPE,stdout=PIPE,stderr=PIPE, encoding="UTF8")
command='START\n'
p.stdin.write(command)
p.stdin.flush()
response=p.stdout.read()
print(response)

这是解决此问题的好方法,还是有更好的方法来调用函数并使用 Python .exe 传递参数?

谢谢!

【问题讨论】:

  • 无法从程序外部访问“函数”。它们是内部组织结构,而不是外部接口。所以是的,你需要一些东西来让你的程序调用它们。
  • 你现在这样做的方式很好。

标签: python command-line subprocess pyinstaller exe


【解决方案1】:

嗯,这是前端(GUI)的工作。自从你决定制作一个可执行文件以来,你可以花一点时间搜索这个主题。因为你的项目看起来有点小,你可以使用像 Tkinker 这样的库(已经在python)或PyQt(用于更高级的东西)来制作一个界面,以便用户可以提供输入/输出/按钮并分别调用您的函数。 如果您有时间进行投资,那么这是正确的方法,即使对于不参与编程的人来说,它也会使您的应用程序更好、更实用。

否决后编辑:Exe 通常是为想要使用程序的非工程师创建的,通常涉及接口并且是特定于机器的(Windows/Linux/Mac)。如果您打算在工程师中使用您的程序,docker 或其他技术可能是更好(所有这些当然都是笼统的,可能与您的具体期望/订单不符)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 2020-07-16
    相关资源
    最近更新 更多