Windows Git Bash неправильно устанавливает переменную среды SHELL для вызываемого Python - PullRequest
0 голосов
/ 11 мая 2019

Я открываю «Git Bash» (git version 2.21.0.windows.1) и печатаю переменную SHELL env, она отображает bash .

$ echo $SHELL
bash

Но делаю то же самоес Python (версия 2 или 3), приводит к:

>>> import os
>>> print(os.environ['SHELL'])
C:\Users\serj\bash

По какой-то причине он добавляется в текущий каталог, и результатом является фиктивный, потому что там нет bash.Все остальные переменные env в порядке.

Если это ошибка, как мне узнать, должен ли я сообщать в Python, git или MSYS?Обычные MSYS + python работают, поэтому в этом пакете git что-то особенное.

1 Ответ

1 голос
/ 11 мая 2019
$ echo $SHELL
bash

Это не нормально.Это должно быть /usr/bin/bash.Что-то должно быть не так с вашей конфигурацией системы или тем, как вы запускаете Git Bash.Например:

  • Неправильный ярлык и запуск его с неверной средой.(Для меня это указывает на "C:\Program Files\Git\git-bash.exe" --cd-to-home, а текущий каталог %HOMEDRIVE%%HOMEPATH%.)
  • У вас есть несколько пользовательских скриптов запуска Bash в %USERPROFILE%, которые переопределяют SHELL (например, у вас также есть Cygwin иуказывает $HOME на ваш %USERPROFILE% тоже).
  • В Git-среде MinGW есть некоторые пользовательские изменения конфигурации (например, в /etc) или изменения макета диска, например, пользовательские символические ссылки или окружение.переменные устанавливаются на уровне Windows, которые изменяют поведение MinGW.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...