1. 程式人生 > >Linux 系統中 Fatal Python error: Py_Initialize: Unable to get the locale encoding

Linux 系統中 Fatal Python error: Py_Initialize: Unable to get the locale encoding

[email protected]:~$ python
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'


類似問題:command not found:conda

暫時性的解決方法是:

export PATH="/home/[your_name]/anaconda/bin:$PATH"

但是下一次重啟之後,還是會出現這個問題,所以我們要acivate ~/.bash_profile

. ~/.bash_profile
#或者
source ~/.bash_profile

這樣應該就能搞定了。

第一步找Python安轉目錄

1、預設Python安裝情況

一般情況,Linux會預裝Python的,版本較低,比如Ubuntu15的系統一般預裝的是Python2.7.10。

使用命令:which python可以檢視當前的python的安裝路徑

: 

開啟對應路徑就可以看到(python目錄下有這些檔案,即:有類似這些檔案(python,python2,python2.7)的目錄,才是自己系統中對應的python目錄)

 

如果沒有明確必須要使用Python3的版本,可以直接使用2.7.10的版本。

明確需要使用Python3版本,再進行更改。

這裡需要說明一點:上圖中存在有python,python2,python3,說明安裝了2和3的版本


第二步:

Linux將命令新增到PATH:
LinuxApacheBash

簡單說PATH就是一組路徑的字串變數,當你輸入的命令不帶任何路徑時,LINUX會在PATH記錄的路徑中查詢該命令。有的話則執行,不存在則提示命令找不到。比如在根目錄/下可以輸入命令ls,在/usr目錄下也可以輸入ls,但其實ls命令根本不在這個兩個目錄下,當你輸入ls命令時LINUX會去/bin,/usr/bin,/sbin等目錄尋找該命令。而PATH就是定義/bin:/sbin:/usr/bin等這些路勁的變數,其中冒號為目錄間的分割符。

如何自定義路徑:
假設你新編譯安裝了一個apache在/usr/local/apache下,你希望每次啟動的時候不用敲一大串字元(# /usr/local/apache/bin/apachectl start)才能使用它,而是直接像ls一樣在任何地方都直接輸入類似這樣(# apachectl start)的簡短命令。這時,你就需要修改環境變數PATH了,準確的說就是給PATH增加一個值/usr/local/apache/bin。將/usr/local/apache/bin新增到PATH中有三種方法:

1、直接在命令列中設定PATH
# PATH=$PATH:/usr/local/apache/bin
使用這種方法,只對當前會話有效,也就是說每當登出或登出系統以後,PATH設定就會失效。

2、在profile中設定PATH
# vi /etc/profile
找到export行,在下面新增加一行,內容為:export PATH=$PATH:/usr/local/apache/bin。
注:= 等號兩邊不能有任何空格。這種方法最好,除非手動強制修改PATH的值,否則將不會被改變。
編輯/etc/profile後PATH的修改不會立馬生效,如果需要立即生效的話,可以執行# source profile命令。

3、在當前使用者的profile中設定PATH
# vi ~/.bash_profile
修改PATH行,把/usr/local/apache/bin新增進去,如:PATH=$PATH:$HOME/bin:/usr/local/apache/bin。
# source ~/.bash_profile
讓這次的修改生效。
注:這種方法只對當前使用者起作用的,其他使用者該修改無效。

去除自定義路徑:
當你發現新增路徑/usr/local/apache/bin沒用或不需要時,你可以在以前修改的/etc/profile或~/.bash_profile檔案中刪除你曾今自定義的路徑。


第三步:

在.profile檔案中新增路徑:

export PATH="$PATH:/home/lx/anaconda3/bin"

PASH環境變數的設定方法:

方法一:使用者主目錄下的.profile或.bashrc檔案(推薦)

登入到你的使用者(非root),在終端輸入:
$ sudo gedit ~/.profile(or .bashrc)
可以在此檔案末尾加入PATH的設定如下:
export PATH=”$PATH:your path1:your path2 ...”
儲存檔案,登出再登入,變數生效。
該方式新增的變數只對當前使用者有效。

方法二:系統目錄下的profile檔案(謹慎)

在系統的etc目錄下,有一個profile檔案,編輯該檔案:
$ sudo gedit /etc/profile
在最後加入PATH的設定如下:
export PATH=”$PATH:your path1:your path2 ...”
該檔案編輯儲存後,重啟系統,變數生效。
該方式新增的變數對所有的使用者都有效。

方法三:系統目錄下的 environment 檔案(謹慎)

在系統的etc目錄下,有一個environment檔案,編輯該檔案:
$ sudo gedit /etc/environment
找到以下的 PATH 變數:
PATH="<......>"
修改該 PATH 變數,在其中加入自己的path即可,例如:
PATH="<......>:your path1:your path2 …"
各個path之間用冒號分割。該檔案也是重啟生效,影響所有使用者。
注意這裡不是新增export PATH=… 。

方法四:直接在終端下輸入

$ sudo export PATH="$PATH:your path1:your path2 …"
這種方式變數立即生效,但使用者登出或系統重啟後設置變成無效,適合臨時變數的設定。


注 意:方法二和三的修改需要謹慎,尤其是通過root使用者修改,如果修改錯誤,將可能導致一些嚴重的系統錯誤。因此筆者推薦使用第一種方法。另外嵌入式 Linux的開發最好不要在root下進行(除非你對Linux已經非常熟悉了!!),以免因為操作不當導致系統嚴重錯誤。

下面是一個對environment檔案錯誤修改導致的問題以及解決方法示例:

問題:因為不小心在 etc/environment裡設在環境變數導致無法登入
提示:不要在 etc/environment裡設定 export PATH這樣會導致重啟後登入不了系統
解決方法:
在登入介面 alt +ctrl+f1進入命令模式,如果不是root使用者需要鍵入(root使用者就不許這麼羅嗦,gedit編輯會不可顯示)
/usr/bin/sudo /usr/bin/vi /etc/environment
游標移到export PATH** 行,連續按 d兩次刪除該行;
輸入:wq儲存退出;
然後鍵入/sbin/reboot重啟系統(可能會提示need to boot,此時直接power off)

相關推薦

Linux 系統 Fatal Python error: Py_Initialize: Unable to get the locale encoding

[email protected]:~$ pythonCould not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix&

uwsgi部署相關問題Fatal Python error: Py_Initialize: Unable to get the locale encoding

directory config add bound int binary smp odi byte uwsgi uwsgi.ini 啟動報錯 ini文件中切換用戶nginx後,因為權限問題,python虛擬環境變成了系統默認環境,缺少很多庫。 另外切換用戶啟動,

Fatal Python error: Py_Initialize: Unable to get the locale encoding問題記錄

問題: Could not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix> Consider setting $P

Fatal Python error: Py_Initialize: unable to load the file system codec. ImportError: No module name

Fatal Python error: Py_Initialize: unable to load the file system codec. ImportError: No module named 'encodings' 解決方法: 1.找自己電腦上有沒有其他版本的Python,如果有

解決python安裝後cmd報錯Fatal Python error: Py_Initialize: unable to load the file system codec

因為我的電腦中以前裝有python,這次重新從網上安裝python3後與之前殘留的設定產生了衝突,開啟cmd輸入python出現錯誤: Fatal Python error: Py_Initialize: unable to load the file system codec Mo

PyCharm出現錯誤,Fatal Python error: Py_Initialize: unable to load the file system codec ModuleNotFound。。

借鑑如下的部落格:https://blog.csdn.net/qq_41574830/article/details/81153096 1.找到你安裝的python.exe,記住此地址 2.在Pycharm找到file--->setteing--project Interpret

[Python] Fatal Python error: Py_Initialize: can’t initialize sys standard streams

在使用 PyCharm時遇到這一個 Error: /Users/chunyuyao/PycharmProjects/HelloMax/hello.py Fatal Python error: Py_Initialize: can’t initialize sys standard streams Trace

ERROR: JDWP Unable to get JNI 1.2 environment的解決方法

pre 發生 next ret bsp println 資料 new 獲取 當執行如下代碼時: //從控制臺獲取輸入 InputStream is = System.in; Scanner scanner = new Sca

ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2

bug 控制臺 gen 部分 運行 err turn 解決方法 之前 調試程序時,控制臺出現下列錯誤: ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 JDW

ERROR JDWP Unable to get JNI 1 2 environment jvm GetEnv

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

ERROR JDWP Unable to get JNI 1 2 environment jvm GetEnv

                ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2今天在用Main函式測試一段程式碼的時候,出現此問題;參考以下文章解決問題:http://blog.csdn.net/

Error:Unable to get the CMake version located at: H:\sdk\cmake\bin Consult IDE log for more details

Error:Unable to get the CMake version located at: H:\sdk\cmake\binConsult IDE log for more details (Help | Show Log) 開啟android studio的sdk

ERROR JDWP Unable to get JNI 1 2 environment jvm- GetEnv

jdwp 分享圖片 views font csdn 容易 問題 函數 net ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 今天在用Main函數測試一段

Unable to get the default Bean Validation factory異常處理

在使用hibernate-distribution-3.6.10.Final-dist 配置hibernate.cfg.xml的時候,出現了一個問題。用junit測試的時候,丟擲一個異常: org.hibernate.HibernateException: Unable t

烏班圖裡的python工具,Linux系統pycharm快捷設定

第一步            首先:我們在桌面上開啟終端,右擊或者快捷法,進入終端控制檯。 第二步        &nb

linux 系統系統關機後,mysql啟動失敗報錯:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '

自己在阿里雲伺服器上安裝好執行環境後,mysql都是正常使用的,昨天強制關閉伺服器後,重新啟動伺服器,發現數據庫無法啟動報錯:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/va

解決Linux系統python matplotlib畫圖的中文顯示問題

執行環境: python3.7 Linux Centos7 用conda安裝的matplotlib 問題: matplotlib畫圖,無法顯示中文 問題原因: linux作業系統以及matplotlib的字型庫中,沒有可用的中文字型 matplotlib包預設只支

linux系統python的模組 || python的檔案操作

一.模組:itchat微信登陸 1.模組:在 Python 中,一個.py檔案就稱之為一個模組(Module)。 •大大提高了程式碼的可維護性; •編寫程式碼不必從零開始。當一個模組編寫完畢,就可以被其 他地方引用; 2.包:如果不同的人編寫的模組名相同怎

老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統LVM配置實現方法?

邏輯卷管理 磁盤 每日一題 1.題目老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統中LVM配置實現方法?2.參考答案01:將一個或多個物理分區創建為一個PV# pvcreate /dev/sdb{1,2} Physical volume "/dev/sdb1" success

linux系統定時任務

linu tab 一次 腳本 lin edi 路徑 執行 表示 1、查看所有定時任務:命令:“crontab -l” 數字意思解釋如下:從左到右,依次是:分、時、日、月、星期。 2、編輯定時執行計劃:命令:"crontab -e" ,e表示edit修改的意思。 3、修