使用pyinstaller安装时如何运行python命令

使用pyinstaller安装时如何运行python命令,python,pyinstaller,Python,Pyinstaller,我有一个pyqt5项目,它有一个按钮。单击此按钮时,使用以下命令安装windows服务: os.system('python myservice.py install') os.system('python myservice.py start') 在此之后,安装并启动windows服务myservice。这只是整个应用程序的特性之一。我现在已经使用pyinstaller将项目转换为app.exe。然后使用inno编译器,我创建了一个安装文件 我正在另一个没有安装python的系统上安装应用

我有一个
pyqt5
项目,它有一个按钮。单击此按钮时,使用以下命令安装windows服务:

os.system('python myservice.py install')

os.system('python myservice.py start')
在此之后,安装并启动windows服务
myservice
。这只是整个应用程序的特性之一。我现在已经使用
pyinstaller
将项目转换为
app.exe
。然后使用
inno编译器
,我创建了一个安装文件

我正在另一个没有安装python的系统上安装应用程序
pyinstaller
在将python脚本转换为exe的同时,还绑定了当前的python解释器和安装的软件包,因此在另一台pc上运行应用程序效果非常好。但是,当我单击安装服务按钮时,它不起作用,因为它以
python myservice.py install
的形式运行命令,并且因为没有安装python,所以它会给出错误


我还通过在cmd上键入python检查了这一点,但它没有显示任何内容。有没有可能在不在另一台电脑上安装python的情况下运行python命令。谢谢

首先,我建议使用subprocess.call而不是os.system

第二,, 如果您需要运行另一个python代码,可以从myservice.py创建另一个可执行文件,然后运行
myservice.exe安装


另一种方法是在一个编译的exe中生成服务和UI的代码。但我认为这不是一个好方法。

请参见以下问题:。我想您可以在
全局
局部
中传递值。我通常不建议使用,但它确实有效。请参阅此问题:@PeterWood我想使用pyinstaller
python myscript.py安装运行此命令。我可以这样做
exec(open('opc_client_service.pyc').read())
,但我不知道如何将
install
传递给它。因此运行此命令
myservice.exe install
将安装该服务。我希望pyinstaller生成的软件与py文件本身的工作方式相同。因此,您需要从myservice创建exe。py@SAndrew,您需要检查如何创建
myservice.py
。这可能是一个参数问题,因为在python中使用命令时,参数
install
是第三个参数,而在.exe中是第二个参数。