Допустим, у меня есть скрипт с двумя проектами, каждый из которых имеет свою среду анаконды и свои пакеты. Например, пакеты, необходимые из проекта 1, находятся в env1, а пакеты, необходимые из проекта 2, находятся в env2. Конечно, когда мне нужно запустить project1, я активирую источник env1 и наоборот для project2. Теперь в моем скрипте Python, находясь в env1, мне нужно запустить project2, например:
source activate env1
python project1.py
project1.py:
import libraries_for_project1
from file_for_project2 import ClassProject2
#project1 stuff
ClassProject2.somemethod() #project2 stuff
#project1 stuff
Что я хочу сделать, это изменить (илиактивируйте выше) env2 внутри самого скрипта python. Я попробовал:
import libraries_for_project1
from file_for_project2 import ClassProject2
import os
import subprocess
#project1 stuff
subprocess.run("bash -c 'source activate ~/anaconda3/envs/env2'", shell=True)
print(os.environ['CONDA_DEFAULT_ENV']) #this return env1
ClassProject2.somemethod() #this cause errors because of some packages are not installed in env1
subprocess.run("bash -c 'source deactivate'", shell=True)
print(os.environ['CONDA_DEFAULT_ENV'])
#project1 stuff
Есть ли у вас какие-либо предложения? (Конечно, я не могу установить библиотеки env2 в env1)