После установки Anaconda я получаю постоянное сообщение "KeyError:" PYTHONPATH "

После установки Anaconda для Python 3.4 на моем Mac я получаю постоянные сообщения, говорящие:

Error in sitecustomize; set PYTHONVERBOSE for traceback: 
KeyError: 'PYTHONPATH'

Как было предложено пользователем по другому вопросу, я использовал

PYTHONVERBOSE=1 conda update --all

И получил трассировку:

Traceback (most recent call last):
  File "/Users/user/anaconda/lib/python3.4/site.py", line 506, in execsitecustomize
    import sitecustomize
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "/usr/local/lib/python2.7/site-packages/sitecustomize.py", line 15, in <module>
    str(sys.version_info[0]) + '.x!\n     PYTHONPATH is currently: "' + str(os.environ['PYTHONPATH']) + '"\n' +
  File "/Users/user/anaconda/lib/python3.4/os.py", line 633, in __getitem__
    raise KeyError(key) from None
KeyError: 'PYTHONPATH'
# destroy sitecustomize

Я огляделся и обнаружил, что "PYTHONPATH" не существует в качестве ключа в os.environ.

Ответ 1

Если установлена ​​переменная среды PYTHONPATH, отключите ее. Вы можете проверить с помощью echo $PYTHONPATH. Если он установлен, это, вероятно, происходит от чего-то в ~/.profile или ~/.bash_profile.

Проблема заключается в файле /usr/local/lib/python2.7/site-packages/sitecustomize.py. Возможно, вам захочется проверить, что это за файл, и откуда он исходит, но его удаление должно устранить проблему.

Ответ 2

Переход к некроположению здесь более подробно для людей, которые могут попасть на эту страницу после поиска показанной ошибки...

Если у вашего Mac есть сообщения, ссылающиеся на /usr/local/, я собираюсь пойти и предположить, что вы использовали homebrew, чтобы установить что-то. В этом случае Python.

Когда установлен дистрибутив Anaconda Python, одна из вещей, которые он проверит, - это если какие-либо настройки сайта применяются к вашей существующей установке Python. Если вы установили любую версию Python с помощью Homebrew, у вас, вероятно, будет такая настройка сайта.

  • Запуск conda info -a | grep dirs получит информацию об установке Anaconda и поиск строки с включенным dirs. Только один должен соответствовать, если он существует:

    user site dirs: ~/.local/lib/python3.5

  • Если он существует, cd в этот каталог (независимо от того, что он есть) и получить список каталогов (ls). Затем вы (вероятно) найдете файл с именем homebrew.pth.

  • Удалите этот файл, и ошибка исчезнет.

Причина: Anaconda ссылается на этот файл homebrew.pth, который затем включает sitecustomize.py из предыдущей homebrew -установленной версии Python.