Зачем PATH, например ты хранишь какой-нибудь токен для бота в переменных, удобно потом этого бота хранить в открытом месте для обмена опытом и прочего, также другие значения светить которые не надо.
Это понятно, но не очень правильно.
ИМХО, корректный юзкейс - это:
1. Вести разработку в GIT
2. Во время разработки использовать локальную версию кода и локальный интерпретатор с локальными переменными окружения
3. Тестирования выполняется так же локально
4. По окончании написания, и тестирования, должен быть выполнен коммит/пуш/мерж в ветку "master", которая должна посредством CI/CD (или вручную) выполнить деплой на "боевой" сервер.
5. Сам процесс "деплой" - это не только перемещение кода, но и описание его запуска, конфигурирование (в т.ч. необходимых переменных окружения), и установка всех необходимых зависимостей (с этой целью обычно pip freeze > requirements.txt из venv так же добавляют в git, а в рамках деплоя выполняют pip install -f requirements.txt)