Я ищу хороший способ определить имя среды conda, в которой я вхожу, из исполняемого кода или интерактивного экземпляра python.
Случай использования: я запускаю Jupyter ноутбуки с ядрами Python 2 и Python 3 из установки miniconda. По умолчанию используется среда Py3. Для Py2 существует отдельная среда. Внутри файла ноутбука я хочу, чтобы он попытался conda install foo
. Я использую subcommand
для этого, потому что я не могу найти программный эквивалент conda pip.main(['install','foo'])
.
Проблема в том, что команда должна знать имя среды Py2 для установки foo
там, если ноутбук работает с использованием ядра Py2. Без этой информации он устанавливается в env по умолчанию Py3. Я бы хотел, чтобы код определял, в какой среде он находится, и правильное имя для него.
Лучшее решение, которое я получил до сих пор:
import sys
def get_env():
sp = sys.path[1].split("/")
if "envs" in sp:
return sp[sp.index("envs") + 1]
else:
return ""
Есть ли более прямой/подходящий способ для этого?