Zainstalowałem anakondę, uruchamiając
bash Anaconda-2.2.0-Linux-x86_64.sh
polecenie w moim systemie Ubuntu 14.04, który został pomyślnie zainstalowany, po czym zostałem poproszony o wyeksportowanie mojej nowej /home/username/anaconda/bin
zmiennej środowiskowej $ PATH.
Dzięki temu mogłem korzystać ze wszystkich funkcji anakondy, w tym IDE, a także z powodzeniem korzystać ze wszystkich poleceń opartych na Condach.
Następnym razem, gdy uruchamiam system, każde źle wpisane polecenie widziało
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)
błąd. (Wszystkie polecenia oprócz python
specyficznych)
Po śledzeniu kilku postów wymiany stosu i postów askubuntu, a także zauważeniu, że mój $PYTHONPATH
został ustawiony usr/local/lib/python2.7
, próbowałem
export PYTHONPATH=$PYTHONPATH:/home/username/anaconda/lib/python2.7
ale to nie pomogło.
To sprawiło, że przejrzałem całą sagę usuwania pakietów i ponownej instalacji oraz oczywiście wiele aktualizacji i uaktualnień, aby samodzielnie rozwiązać problem.
conda info -a
zwroty:
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
Komenda
which python
zwroty
/home/username/anaconda/bin/python
i
echo "$PATH"
zwroty
/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
Wiem, że ma to związek ze sposobem, w jaki ustawiam zmienne ścieżki, szczególnie w tym, ~/.bashrc
w którym Anaconda automatycznie dodała folder / home / username / anaconda / bin do $PATH
zmiennej (Stało się to podczas drugiej instalacji Anacondy po tym, jak ją najpierw usunąłem ).
Nie zmodyfikowałem żadnej innej zmiennej środowiskowej w żadnym z ~/.profile
lub ~/.bashrc
.
Dodałem linię eksportu PYTHONPATH do mojej ~/.bashrc
przed ponownym uruchomieniem.
Wszystkie funkcje Anacondy działają teraz, chociaż ten sam Fatal Python error: Py_Initialize: Unable to get the locale encoding
błąd pojawia się zamiast zwykłego nieznanego błędu polecenia, w przypadku większości źle wpisanych poleceń.
Będę się nad tym zastanawiał i zredagował moją odpowiedź (lub odniesie się do istniejących odpowiedzi, jeśli takie istnieją), jak tylko dowiem się, dlaczego tak się dzieje.
źródło
PYTHONPATH: /home/usrnme/anaconda/lib/python2.7:/usr/local/lib/python2.7
. Jeśli mam usunąć wiersz PYTHONPATH: / home / usrnme / anaconda .. z mojego ~ / .bashrc, błąd nadal będzie występował, a także żadna z funkcji Anacondy nie zadziała, dopóki nie ustawię go ponownie.W ciągu ostatnich kilku dni miałem podobne problemy, więc prześledziłem to do tego, jak bash obsługuje „nie znaleziono polecenia”. W Ubuntu 14.04 (i Linux Mint 17, w której korzystam ze skryptów 14.04), /etc/bash.bashrc ma następującą funkcję:
Jednak / usr / lib / command-not-found został przepisany dla Pythona 3. Obsługuje on komendę /etc/bash.bashrc z:
To wywołuje „python3” ze ścieżki, a nie daje bezpośredniej ścieżki. Aby to naprawić, należy zmienić wiersz 22 w / usr / lib / command-not-found
do
To wydaje się być błędem w Ubuntu, a nie w Anaconda. Sprawdzę, czy pojawi się w późniejszych dystrybucjach.
źródło
Po zainstalowaniu python3 w standardowych lokalizacjach i zrozumieniu, że potrzebuję sudo, aby go użyć, zainstalowałem lokalnie, używając tego w moim katalogu domowym:
Ale miał więcej błędów. Po prostu rozbrojenie PYTHONPATH na instancji AWS Amazon Linux działało dla mnie świetnie.
źródło
Mój problem był nieco inny: jako jeden użytkownik mogłem uruchomić
python
, ale jako inny użytkownik nie (mam ten sam błąd co OP). Wreszcie dowiedziałem się, że uprawnienia i własność /usr/lib/python3.5 zostały przykręcone. Powodem tego było to, że rekurencyjnie ustawiałem uprawnienia i własność virtualenv, co skończyło się również modyfikacją celów dowiązań symbolicznych (targetin /usr/lib/python3.5 ).Wskazówka: Użyj,
strace python
aby dowiedzieć się, co się dzieje podczas uruchamiania Pythona. Kiedy użyłemstrace
, mogłem wyraźnie zobaczyć PERMISSION_DENIED na /usr/lib/python3.5 .źródło
To zadziałało dla mnie
/programming//a/39097003/823282
źródło
Miałem podobny problem w systemie Windows - usunąłem zmienną systemową PYTHONHOME. Spróbuję przetłumaczyć rozwiązanie na angielski. Mój komputer> Właściwości> Zaawansowane ustawienia systemu> Zmienne środowiskowe, poszukaj zmiennej PYTHONHOME i usuń ją.
źródło