ПУТЬ по-прежнему зависит от Anaconda после удаления

Когда я запускаю echo $ PATH в терминале (macOS), он возвращает /opt/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin. Я удалил anaconda, и мой каталог opt и .bash_profile пуст. Когда я запускаю команду which python, она возвращает: /usr/local/bin/python. В аналогичных вопросах проблема решается удалением каталога anaconda из переменной среды PATH, но мой ~/.bash_profile пустой.

Python работает нормально в терминале, но я предполагаю, что PATH проходит через пустые каталоги, в которых файлы Anaconda были расположены первыми? Я предполагаю, что это не оптимально и может создать проблемы в будущем?

Решение Гордона Дэвиссона:

Я использую zsh. Вот что я нашел в своем z.profile:

# Setting PATH for Python 3.9
# The original version is saved in .zprofile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH

Вот что я нашел в .zshrc (когда я попытался отредактировать, он сказал, что «не владею файлом» и должен продублировать его для редактирования):

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/opt/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/opt/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/opt/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

Я не смог найти ~/.zlogin, ~/.zshenv или ~/.profile. Но вот что я нашел в paths.d (не уверен, что это за файл “100-rvictl”):

Last login: Mon Sep  6 17:21:00 on ttys001
me@mahmouds-mbp-2 ~ % /etc/paths.d/100-rvictl ; exit;
/etc/paths.d/100-rvictl: line 1: /Library/Apple/usr/bin: is a directory
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

1 ответ
1

Похоже на остатки PATH запись исходит от вашего ~/.zshrc файл. Весь раздел “conda initialize” (из # >>> conda initialize >>> к # <<< conda initialize <<<) следует удалить. Если это единственное, что есть в файле, вы можете просто удалить весь файл. Но если там есть другие вещи, вы должны отредактировать его, и лучше сначала исправить его владельца.

Исправление права собственности на файл: вы можете стать владельцем файла с помощью:

sudo chown "$UID" ~/.zshrc

… но могут быть и другие файлы с той же проблемой, поэтому я бы рекомендовал запустить ls -l ~ чтобы вывести список всех файлов в вашей домашней папке и применить это исправление ко всем другим файлам, которые вам не принадлежат. Для папок используйте sudo chown -R "$UID" ~/foldername чтобы получить и их содержимое.

Кстати, проблема владения, скорее всего, связана с тем, что какой-то установщик или скрипт настройки работает от имени пользователя root (то есть с sudo), а не под вашим идентификатором пользователя, и, следовательно, создание файлов, принадлежащих пользователю root, а не вам.

О, и об этом /etc/paths.d/100-rvictl файл: похоже, вы дважды щелкнули по нему, который попытался запустить его как скрипт, который на самом деле не сработал (это не скрипт). Но, судя по содержанию, это не связано и не должно быть проблемой.

  • Это действительно полезно, спасибо. Я удалил то, что нашел в файле .zshrc, но это еще не решило проблему пути. Я нашел больше разделов “инициализация кондо” в двух других файлах: ‘.xonshrc’ и ‘.tcshrc’. Они также заблокированы, но я думаю, что могу решить эту проблему, используя команду sudo chown -R “$ UID” ~ / foldername ‘, чтобы владеть ими. Разделы “condo initialise” – это их единственное содержимое, следует ли мне их удалить или вы рекомендуете просто отредактировать разделы из них?

    – Махмуд Хосни

    вчера

  • Если это все, что есть в них, просто удалите их. Это файлы инициализации для других оболочек. По-видимому, установщик Anaconda поместил их туда на всякий случай, если вы используете эти оболочки – но вы этого не делаете, поэтому они вдвойне неактуальны.

    – Гордон Дэвиссон

    вчера

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *