Изменение среды Conda немного условно, я использую функцию с FZF, которая перечисляет среды и выбирает ту, которую я хочу за один раз.
Конда
Я использовал Conda в качестве инструмента виртуальной среды в течение многих лет. Я начал использовать Conda для его простоты для установки пакетов в Windows, но теперь это стало намного лучше И прошло годы с тех пор, как я запустил Conda Install
командование Я уверен, что я мог бы использовать другого менеджера по окружающей среде, но это работает для меня и имеет смысл.
Какой менеджер по окружающей среде вы используете для Python?
Среда Conda хранятся в центральном месте, например ~/miniconda3/envs/
И не с проектом. Они содержат как интерпретатор Python, так и пакеты для этой Env.
Conda создать
Среда Conda создается с помощью Conda Create
командование На этом этапе вам нужно будет назвать свою Env и выбрать версию Python.
conda create -n my_env python=3.8
После запуска этой команды у вас будет каталог ~/miniconda3/envs/my_env
С базовой установкой Python. Это еще не будет активным.
Список сред
Прежде чем активировать среду, я часто хочу перечислить условия, которые я установил, которые часто превышают 70, поэтому трудно запомнить их всех.
conda info --envs
После запуска этой команды вы увидите что -то вроде следующего.
# conda environments: # base /home/waylon/miniconda3 my_env /home/waylon/my_env
Активация среды
Активация среды Conda принесет некоторую магию для ваших текущих раковинов $ Path
переменная, чтобы гарантировать, что выбранная вами среда предпочтительнее в базовой среде.
conda activate my_env
Готов к работе
Теперь вы можете установить пакеты для своего проекта в изолированной среде, безопасной от разрушения другого проекта или разбитого другим проектом.
pip install -r requirements.txt
Использование FZF
немного менее многословный
fzf это удивительный инструмент для терминала, который является общим нечетким собокушением. Он суперпрофессиональный, может обрабатывать безумные объемы текста и великолепно выяснить, что вы имеете в виду, только с несколькими символами. Мы можем использовать его здесь, чтобы перечислить все наши среды Conda и выбрать ту, которую мы хотим активировать только несколькими нажатиями нажатий.
Выбор окружающей среды.
Обеспечить наш список среда непосредственно в fzf
Дает нам нечеткий выбор, где мы можем напечатать несколько символов, и он вернет ряд, который мы искали.
conda info --envs | fzf
Это возвращает нам что -то подобное, что также включает в себя путь, по которому он находится.
my_env /home/walkews/miniconda3/envs/my_env
Получение только названия среды
Чтобы получить только имя без пути, я подчиняю вывод в AWK. Есть много способов сделать это в Bash, именно так сработало для меня в то время, когда я выполнил эту функцию.
conda info --envs | fzf | awk '{print $1}'
Время активировать
Функции, которые используют fzf
Может быть немного странным, запустив их в подборке с синтаксисом $ (), как правило, делает его очень простым в использовании вывода. Независимо от того, сколько раз я пробовал, не запустив его в подболле, это всегда глюка без него.
conda activate "$(conda info --envs | fzf | awk '{print $1}')"
Теперь это будет работать с активацией Conda в среде, которую мы выбираем с FZF.
Сделать это функцией
Мы не хотим набирать это каждый раз, когда хотим активировать среду. Я держу функцию под названием A
в моем ~/.bashrc
и ~/.zshrc
так что я могу активировать среду с одним персонажем. Да, я переключаю среды достаточно часто, чтобы оправдать ценное пространство имен одного символа.
a () { conda activate "$(conda info --envs | fzf | awk '{print $1}')" }
Создание многоразовых сценариев Bash
Waylon Walker ・ 14 августа 420 ・ 4 мин читать
Для получения дополнительной информации о написании повторного использования Bash Проверьте одну из моих любимых статей, которые я сделал Создание многоразовых сценариев Bash
Я всегда в поисках крутых новых вариантов использования для FZF
, если у вас есть один, пожалуйста, поделитесь этим со мной.
Оригинал: “https://dev.to/waylonwalker/quickly-change-conda-env-with-fzf-2b3j”