如何在Popen执行的shell中conda init?

问题描述 投票:0回答:0

所以我试图在Qt中使用Popen来执行一个shell,我想在其中激活一个名为“alphapose”的conda虚拟环境,然后执行推理,py:

QString srtttt = "conda activate alphapose;cd;cd AlphaPose-pytorch-1.11 ;python scripts/demo_inference.py ";
FILE* fp = popen(srtttt.toLocal8Bit().data(), "r");

然而它告诉我


CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

我知道下一步是 conda -init 并重新打开终端,问题是:如何重新打开 Popen 执行的 shell?如果你不关闭,那么 conda 将永远不会初始化。如果你关闭,那么 Popen结束所以执行结束。

其实我也没有想出什么办法来解决这个问题。所以下面只是对这种情况的一些补充: 我可以在终端中成功运行conda activate或其他命令,这意味着conda没有问题。只是Popen执行的这个shell不能很好地初始化。 在这个特定的 shell 中,“conda env list”或“conda”可以用正确的输出很好地执行,如果你执行“conda init”,输出将是“no change and no action taking”(这很奇怪)

conda popen init virtual-environment
© www.soinside.com 2019 - 2024. All rights reserved.