需要 virtenv 时如何运行 QProcess?

Posted

技术标签:

【中文标题】需要 virtenv 时如何运行 QProcess?【英文标题】:How to run QProcess when a virtenv is needed? 【发布时间】:2021-09-09 11:34:04 【问题描述】:

如果我只是尝试通过带有“python3”和文件路径的 QProcess 运行我的 python 文件,QProcess 将不会执行。在终端上玩过这个之后,我发现当文件运行时它无法加载在我的虚拟环境中找到的适当模块。如何让 QProcess 执行文件但首先打开虚拟环境?

这不起作用:

loop_process = QProcess()
loop_process.start("python3", ['/home/id/VirtPython/looper_testing_ver5_2.py'])
# Gives the module cannot load error

所以我尝试了这个(我尝试激活我的 virtenv):

loop_process = QProcess()
loop_process.start(". /scratch/id/pipenv/VirtPython-4445xf/bin/activate", ['python3' '/home/id/VirtPython/looper_testing_ver5_2.py'])

它仍然失败,但我不知道错误。

【问题讨论】:

【参考方案1】:

你只需要使用 virtualenv python:

loop_process = QProcess()
loop_process.start("/scratch/id/pipenv/VirtPython-4445xf/bin/python3", ['/home/id/VirtPython/looper_testing_ver5_2.py'])

【讨论】:

以上是关于需要 virtenv 时如何运行 QProcess?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 上通过 QProcess 启动提升的子进程?

监控正在运行的 qprocess 并在 qprocess 完成时返回值

linux下QT中如何使用QProcess运行linux命令。

如何使用 QProcess 同时运行多个 python 脚本

如何使用 QProcess 运行命令行?

如何在 PySide 中获取 QProcess 运行的命令的输出?