Я установил анаконду путем выполнения
bash Anaconda-2.2.0-Linux-x86_64.sh
команда в моей системе Ubuntu 14.04, которая установила успешно, после которого меня попросили экспортировать мое новое /home/username/anaconda/bin
Переменная среды $PATH.
При выполнении так, я смог использовать все функции анаконды включая IDE, а также использовать базирующиеся команды всего conda успешно.
В следующий раз, когда я загрузил свою систему, каждая введенная мисс команда видела a
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 и также замечающий, что мой $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
в котором Анаконда автоматически предварительно ожидала мою/home/username/anaconda/bin папку к $PATH
переменная (Это произошло во время второй установки Анаконды после того, как я удалил ее сначала).
Я не изменил никакую другую переменную среды в также ~/.profile
или ~/.bashrc
.
Я добавил строку $PYTHONPATH экспорта к моему ~/.bashrc
перед перезапуском.
Все функции Анаконды работают теперь, хотя то же Fatal Python error: Py_Initialize: Unable to get the locale encoding
ошибка продолжает показ вместо обычной неизвестной ошибки команды для наиболее введенных с опечаткой команд.
Я буду продолжать изучать это и редактировать свой ответ (или обращаться к существующим ответам, если таковые имеются), как только я узнаю, почему это происходит.
Я рекомендовал бы сбросить PYTHONPATH. Это вообще не нужно, и это вызывает вещи повредиться как это, заставляя один Python загрузить вещи из другого Python (в этом случае, похоже, что Python 3 системы пытается загрузить что-то, что было записано для Python 2).
У меня были подобные проблемы в прошедшие дни пары, таким образом, я проследил его до того, как удар обрабатывает "команду, не найденную". В Ubuntu 14.04 (и Linux Mint 17, который я использую эти 14,04 сценариев),/etc/bash.bashrc имеет следующую функцию:
if [ -x /usr/lib/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found -- $1
return $?
else
return 127
fi
}
fi
Однако/usr/lib/command-not-found был переписан для Python 3. Это обрабатывает команду/etc/bash.bashrc с:
if sys.version < '3':
# We might end up being executed with Python 2 due to an old
# /etc/bash.bashrc.
import os
if "COMMAND_NOT_FOUND_FORCE_PYTHON2" not in os.environ:
os.execvp("python3", [sys.argv[0]] + sys.argv)
Это называет "python3" от пути вместо того, чтобы дать прямой путь. Для исправления этого строка, 22 из/usr/lib/command-not-found должны быть изменены от
os.execvp("python3", [sys.argv[0]] + sys.argv)
к
os.execv("/usr/bin/python3", [sys.argv[0]] + sys.argv)
, Это, кажется, ошибка с Ubuntu, а не Анакондой. Я проверю, чтобы видеть, появляется ли это в более поздних дистрибутивах.
Установив python3 в стандартных местоположениях и понимании мне был нужен sudo для использования его, я установил локально использование этого в моем корневом каталоге:
python3 -m venv env_py3
source env_py3/bin/activate
, Но имел больше ошибок. Просто сбрасывая PYTHONPATH на Amazon AWS экземпляр Linux работал отлично только для меня.
Моя проблема несколько отличалась: Как один пользователь, я мог работать python
, но как другой пользователь, не (я получил ту же ошибку как OP). Наконец, я узнал, что полномочия и владение /usr/lib/python3.5 были завинчены. Причина этого состояла в том, что я рекурсивно установил полномочия и владение на virtualenv, который закончился в изменении целей символьной ссылки (предназначающийся /usr/lib/python3.5) также.
Подсказка: Используйте strace python
для выяснения то, что продолжается во время запуска Python. Когда я использовал strace
, я мог ясно видеть PERMISSION_DENIED на /usr/lib/python3.5.
У меня была подобная проблема об окнах - я удалил системную переменную PYTHONHOME. Я попытаюсь перевести решение на английский язык. Мой Компьютер> Свойства> Усовершенствованные Параметры настройки системы> Переменные среды, ищите переменный PYTHONHOME и удалите его.
Это работало на меня
https://stackoverflow.com/a/39097003/823282
rm -rf venv
virtualenv -p /usr/bin/python3 venv/
source venv/bin/activate
pip install -r requirements.txt