使用QProcess在虚拟环境中启动和停止python脚本
我正在尝试从QT应用程序运行python脚本。此脚本需要在名为使用QProcess在虚拟环境中启动和停止python脚本,python,qt,virtualenv,qprocess,Python,Qt,Virtualenv,Qprocess,我正在尝试从QT应用程序运行python脚本。此脚本需要在名为venv的virtualenv中运行。我可以启动脚本,但当我尝试.kill()时,脚本将一直运行,直到控制台窗口关闭。或者调用.terminate()只会让应用程序挂起,因为它永远不会正确完成。最低复制率低于 QProcess python; python.start( ".\\AdminConsole\\venv\\Scripts\\python " ".\\AdminCon
venv
的virtualenv中运行。我可以启动脚本,但当我尝试.kill()
时,脚本将一直运行,直到控制台窗口关闭。或者调用.terminate()
只会让应用程序挂起,因为它永远不会正确完成。最低复制率低于
QProcess python;
python.start( ".\\AdminConsole\\venv\\Scripts\\python "
".\\AdminConsole\\manage.py runserver 0.0.0.0:8000" );
python.waitForStarted();
python.kill();
python.waitForFinished();
printf( "Ended \n" );
return 0;
谢谢你的帮助
编辑
减少最小复制中的代码程序是否正确执行?也许你可以通过stdin给程序一个命令,它会自动关闭。程序执行得很好。我需要能够在没有通信的情况下杀死它,以防程序没有响应可能此命令正在生成多个进程,而您只杀死其中一个进程。这似乎是有可能的,但是当父进程死亡时,它们应该在控制台关闭时死亡,而不是在父进程死亡时死亡。控制台可以是进程的父进程。
QProcess::program()
运行时的输出是什么?程序是否正确执行?也许你可以通过stdin给程序一个命令,它会自动关闭。程序执行得很好。我需要能够在没有通信的情况下杀死它,以防程序没有响应可能此命令正在生成多个进程,而您只杀死其中一个进程。这似乎是有可能的,但是当父进程死亡时,它们应该在控制台关闭时死亡,而不是在父进程死亡时死亡。控制台可以是进程的父进程。QProcess::program()
运行时的输出是什么?