Я разработчик Python и обычно одновременно работаю с несколькими репозиториями. Большинство этих проектов имеют разные зависимости, поэтому я создаю виртуальную среду в каждом проекте. Я предпочитаю создавать виртуальную среду рядом с кодом. Pycharm также обнаруживает это, когда репозиторий открывается в Pycharm.
Эта настройка работала большую часть времени, но иногда я активирую venv одного репозитория, а затем меняю его на другой репозиторий, не меняя активацию правильной среды. Обычно я замечал это, когда выполнение кода терпело неудачу, и никогда не терял на это больше минуты, но это всегда заставляло меня задуматься, а что, если существует оболочка, которая может запускать что-то при входе в каталог?
Я решил временно реализовать что-то простое в сценарии оболочки. В итоге я создал небольшую функцию с псевдонимом cd и добавил ее в свой .bashrc.
Это простая функция и все, что мне когда-либо было нужно. Так и есть,
Я был в порядке, не деактивируя/сбрасывая среду при выходе из каталога.
Добавьте функцию ниже в .bashrc, и вы сможете ее использовать.
Примечание. Если вы создаете виртуальную среду с другим именем, измените имя в коде ниже.
function cd() { # Run a shell `cd` command or error command cd "$@" || return # If .venv exists in the directory if [[ -d .venv ]]; then # Deactivate any initialized virtual env, ignore error deactivate > /dev/null 2>&1 # activate .venv source .venv/bin/activate echo "deactivate prev venv and activate current venv" fi # Load a .cdenv file if [[ -f .cdenv ]]; then echo "loading .cdenv" source ./.cdenv fi }
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3