我有两个脚本A.py
和B.py
,它们在Ubuntu 18.04计算机上的不同conda环境中运行。
我想使用A.py
来调用B.py
,方法是打开bash外壳,依次调用“ conda activate envB”和“ python B.py args”。但是,以下两种尝试均无效:
尝试1):
import subprocess
subprocess.call(['conda', 'activate', 'envB'])
for i in range(10):
subprocess.call(['python', 'B.py', i])
我收到一条错误消息,提示未正确设置conda:CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run .....
我尝试添加subprocess.call(['source', '~/.bashrc'])
来设置环境路径,但是shell似乎在抱怨No such file or directory: 'source': 'source'
尝试2)
subprocess.call(['/bin/bash', '-i', '-c', "conda activate myenv"])
subprocess.call(['/bin/bash', '-i', '-c', "echo $(which python) >> test.txt"])
for i in range(10):
subprocess.call(['/bin/bash', '-i', '-c', "python B.py -{}".format(i)])
尝试3)
我也尝试使用os.system(command)
,但无法弄清楚如何使用os.system加载环境变量。
因此,这也不起作用:How to call anaconda environment to run specific package of python(2.7) from other python(3.7) script via os.system()?