Я установил анаконду, запустив
bash Anaconda-2.2.0-Linux-x86_64.sh
команда в моей системе Ubuntu 14.04, которая была успешно установлена, после чего меня попросили экспортировать мою новую /home/username/anaconda/bin
переменную среды $ PATH.
После этого я смог использовать все функции anaconda, включая IDE, а также успешно использовать все команды, основанные на conda.
В следующий раз, когда я загрузил свою систему, каждая неправильно набранная команда увидела
Fatal Python error: Py_Initialize: Unable to get the locale encoding
File "/usr/local/lib/python2.7/encodings/__init__.py", line 123
raise CodecRegistryError,\
^
SyntaxError: invalid syntax
Aborted (core dumped)
ошибка. (Все команды, кроме python
конкретных)
Следуя нескольким сообщениям stackexchange и askubuntu, а также заметив, что my $PYTHONPATH
было настроено на usr/local/lib/python2.7
, я попытался
export PYTHONPATH=$PYTHONPATH:/home/username/anaconda/lib/python2.7
но это не помогло
Это заставило меня пройти через целую сагу удалений и переустановок пакетов и, конечно же, множество обновлений и обновлений, чтобы попытаться решить проблему самостоятельно.
conda info -a
возвращает:
CIO_TEST: <not set>
CONDA_DEFAULT_ENV: <not set>
CONDA_ENVS_PATH: <not set>
LD_LIBRARY_PATH: <not set>
PATH: /home/username/anaconda/bin:/home/username/Scala-sbt/sbt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/bin:/usr/local/java/jdk1.8.0_20/bin
PYTHONHOME: <not set>
PYTHONPATH: /usr/local/lib/python2.7:/home/username/anaconda/bin/python
Команда
which python
возвращается
/home/username/anaconda/bin/python
и
echo "$PATH"
возвращается
/home/username/anaconda/bin:/home/username/Scala-sbt/sbt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/bin:/usr/local/java/jdk1.8.0_20/bin
Я знаю, что это как-то связано с тем, как я устанавливаю переменные пути, особенно в том, ~/.bashrc
в котором Anaconda автоматически добавляла мою папку / home / username / anaconda / bin к $PATH
переменной (это произошло во время второй установки Anaconda после того, как я сначала удалил ее) ).
Я не изменил другую переменную среду в любом ~/.profile
или ~/.bashrc
.
Я добавил строку экспорта $ PYTHONPATH в свой ~/.bashrc
перед перезапуском.
Все функции Anaconda теперь работают, хотя Fatal Python error: Py_Initialize: Unable to get the locale encoding
одна и та же ошибка продолжает появляться вместо обычной неизвестной ошибки команды для большинства опечаток.
Я буду продолжать изучать это и редактировать свой ответ (или ссылаться на существующие ответы, если таковые имеются), как только я узнаю, почему это происходит.
источник
PYTHONPATH: /home/usrnme/anaconda/lib/python2.7:/usr/local/lib/python2.7
. Если я хочу удалить строку PYTHONPATH: / home / usrnme / anaconda .. из моего ~ / .bashrc, ошибка все равно будет сохраняться, и ни одна из функций Anaconda не будет работать, пока я не установлю ее снова.У меня были подобные проблемы в последние пару дней, поэтому я проследил это до того, как bash обрабатывает «команда не найдена». В Ubuntu 14.04 (и Linux Mint 17, в котором я использую сценарии 14.04), /etc/bash.bashrc имеет следующую функцию:
Однако / usr / lib / command-not-found был переписан для Python 3. Он обрабатывает команду /etc/bash.bashrc с помощью:
Это вызывает «python3» с пути, а не дает прямой путь. Чтобы исправить это, строка 22 из / usr / lib / command-not-found должна быть изменена с
в
Это похоже на ошибку в Ubuntu, а не в Anaconda. Я проверю, чтобы увидеть, появится ли он в более поздних дистрибутивах.
источник
Установив python3 в стандартных местах и поняв, что для его использования мне нужен sudo, я установил локально, используя это в своем домашнем каталоге:
Но было больше ошибок. Простое отключение PYTHONPATH на экземпляре AWS Amazon Linux мне очень помогло.
источник
Моя проблема была немного другой: я мог работать
python
как один пользователь, но не как другой (я получил ту же ошибку, что и OP). Наконец, я обнаружил, что права доступа и владение /usr/lib/python3.5 были испорчены. Причиной этого было то, что я рекурсивно установил права доступа и владельца для virtualenv, что также привело к изменению целей символической ссылки (targetin /usr/lib/python3.5 ).Совет: Используйте,
strace python
чтобы выяснить, что происходит во время запуска Python. Когда я использовалstrace
, я мог ясно видеть PERMISSION_DENIED на /usr/lib/python3.5 .источник
Это сработало для меня
/programming//a/39097003/823282
источник
У меня была похожая проблема в Windows - я удалил системную переменную PYTHONHOME. Я постараюсь перевести решение на английский. Мой компьютер> Свойства> Расширенные настройки системы> Переменные среды, найдите переменную PYTHONHOME и удалите ее.
источник