Рубрики
Без рубрики

Быстро измените Conda Env с FZF

Изменение среда Conda немного условно, я использую функцию с FZF, в которой оба перечислены среды … Tagged с Python.

Изменение среды 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”