echo $ PATH показывает каталог Python.Framework. Изменения отменяются после перезапуска терминала - PullRequest
0 голосов
/ 24 января 2019

Итак, я побежал brew doctor, и вот что получилось:

Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:
  /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7-config
  /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7m-config
  /Library/Frameworks/Python.framework/Versions/3.7/bin/python3-config

Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Затем, когда я набираю export PATH=/usr/bin:/bin:/usr/sbin:/sbin и отображаю $ PATH, это дает мне export PATH=/usr/bin:/bin:/usr/sbin:/sbin НО, когда я перезагружаю терминал (iTerm2 zsh), он возвращается к /Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Этот $ PATH выглядит неправильно. Я не знаю много о $ PATH, но есть ли способ исправить это так, как должно быть? Я также попытался отредактировать .bash_profile и поставить путь PATH=/usr/bin:/bin:/usr/sbin:/sbin вместо python - все равно не повезло, когда я повторил $ ​​PATH, это все еще тот же путь с python. Пожалуйста, помогите мне, это расстраивает.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Вместо различных вопросов вокруг Bash / Zsh & co, и соответствующих ~/.bashrc, ~/.zshrc и т. Д .;если у вас достаточно доступа, вы можете определить переменную PATH в отдельном файле в каталоге /etc/profile.d.

Например:

sudo cat > /etc/profile.d/variousEnvironmentUpdates.sh <<EOF
PATH=<what you want first>:$PATH
EOF
0 голосов
/ 24 января 2019

Вы должны поместить PATH в ~/.bashrc вместо ~/.bash_profile.

Поскольку ~/.bash_profile действует только тогда, когда bash вызывается как оболочка входа в систему, что означает, что вы должны повторно войти или запустить bashс параметром --login.

~/.bashrc, вместо этого, будет читаться и выполняться при запуске интерактивной оболочки.Это работает, когда вы перезагружаете свой терминал.


Редактировать: Извините, я обнаружил, что ваша оболочка zsh.Ответ выше для bash.

Для zsh введите PATH в $ZDOTDIR/.zshrc.

Затем команды читаются из $ZDOTDIR/.zshenv.Если оболочка является оболочкой входа в систему, команды читаются из /etc/zsh/zprofile, а затем $ZDOTDIR/.zprofile.

Затем, если оболочка является интерактивной, команды считываются из /etc/zsh/zshrc и затем $ZDOTDIR/.zshrc.

Наконец, если оболочка является оболочкой входа в систему, /etc/zsh/zlogin и $ZDOTDIR/.zloginчитаются.

Если вы не установите переменную ZDOTDIR, то эти файлы находятся в вашем домашнем каталоге.

...