#python #path #virtualenv #conda #spyder
Вопрос:
Я использую Spyder и работаю с виртуальной средой, созданной с помощью conda create, которая находится в C:/Users/username/.conda/envs/…
Чтобы справиться с ошибкой GDAL proj.db (база данных proj_create_from_database: Не удается найти proj.db), мне нужно установить:
os.environ[‘PROJ_LIB’] = «C:/Users/username/.conda/envs/test/Library/share/proj»
Поскольку я пишу сценарий не только для себя, я хотел бы написать строку, чтобы найти путь к текущей среде conda и сохранить ее как переменную «conda_env_path» (в моем случае C:/Users/username/.conda/envs/test).
Все ответы, которые я нашел, говорят о поиске пути к среде в подсказке anaconda, а не в виде строки сценария.
спасибо.
Комментарии:
1. Вы можете использовать команды оболочки на Python, чтобы получить путь к вашему env и сохранить результат в переменной, подобной этой :
conda_env_path = os.popen('conda info --base').read().split('n')[0]
. Иbase
замените своим именем виртуальной среды.2. Можете ли вы использовать
CONDA_PREFIX
? Это будет каталог текущей активной среды. Кроме того, пожалуйста, свяжите ответы, которые вы пробовали, но не получилось.3. @MKDYasserH Спасибо вам за идею «команд оболочки», это то, что я искал 🙂 К сожалению, я получаю ошибку: использование: conda-script.py [-h] [-V] команда … conda-script.py: ошибка: непризнанные аргументы: —тест. И это также не работает в подсказке Anaconda. Наконец, было бы идеально иметь возможность получить доступ к пути к текущему env без указания его имени.
4. @merv, чтобы иметь возможность использовать CONDA_PREFIX, мне нужно было бы создать env с помощью ‘conda create —prefix ./envs’, верно?
5. Нет. Если сценарий выполняется в среде Conda, то
os.environ['CONDA_PREFIX']
будет определен.