gpt4 book ai didi

python - 在anaconda环境中使用子进程

转载 作者:太空宇宙 更新时间:2023-11-03 15:42:27 27 4
gpt4 key购买 nike

我使用 Python 3.6.6::Anaconda, Inc.

我尝试使用子进程调用其他 python 脚本。

subprocess.run("python -V", shell=True)

我试过这段代码,但结果是

Python 2.7.12

我的本​​地 python 被抓了

我也试过

subprocess.run("bash -c 'source /home/hclee/anaconda3/envs/calamari/lib/python3.6/venv/scripts/common/activate
/home/hclee/anaconda3/envs/calamari && python -V && source deactivate'", shell=True)

但我得到了相同的结果

最佳答案

在 Linux 中运行 source activate root,或在 Windows 中运行 activate root 以在运行代码之前激活环境。

如果这对您没有帮助,请尝试快速修复,例如:

subprocess.run('bash -c "source activate root; python -V"', shell=True)

之所以需要调用bash,是因为python的run不会调用bash环境,而是另外一个比较受限,不包含source,所以这里需要调用bash。 .. 但是如前所述,如果你需要这个命令,要么你正在做一些特殊的事情,要么你的环境有问题......

不需要 deactivate,它什么都不做,因为运行它的 shell 将被破坏...

注意:对于最新的 conda 版本,提供的代码可以工作,但也有这些选项的工作方式类似:

畅达停用:

subprocess.run('bash -c "conda deactivate; python -V"', shell=True)

conda 激活 rootbase:

subprocess.run('bash -c "conda activate root; python -V"', shell=True)
subprocess.run('bash -c "conda activate base; python -V"', shell=True)

关于python - 在anaconda环境中使用子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51819719/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com