前言:
工作中,常常要在新的linux生產服務器中安裝自己的集成python環境,這種情況下有一點需要注意:不能覆蓋生產服務器中的python環境(也就是自己的python環境要和系統的python環境分開)。一般情況下系統自帶的python環境一般為2,而我們需要的python環境一般為3。并且生產服務器一般是安全等級比較高的,一般是斷網的狀態,這也就意味著所有的安裝操作都要手動進行(PS:一行指令的事就此變成漫長的折騰)。
為了順利完成安裝python3的環境,就需要你事先做好準備,不然把生產環境搞出問題,那就等著“祭天”吧。
1、準備
首先你要了解目前系統中python環境的情況,即有哪些python環境。
whereis python
#正常環境中只有默認的python2環境,也就是下圖中紅色框框中的內容。
其次要看下對應的系統變量配置文件(看下有哪些配置,便于后續安裝過程中發生意外進行還原)
vi ~/.bashrc
#正常情況下,如下圖所示。
2、操作
然后開始安裝Anaconda,這里需要提醒下,如果對python版本有要求一定要事先進行評估,選擇相對應的python版本,如3.6,3.7。這樣避免后續因為一些包與相關python版本不兼容,出現各種問題,導致相關功能無法正常使用。這樣就很難堪了(畢竟所處的生產環境是高危環境,安裝各種包很麻煩,且做這些安裝環境的操作要十分謹慎)
下載對應python版本的anacanda包
安裝
bash Anaconda3-5.2.0-Linux-x86_64.sh
中間會碰到如下情景,這里是提示是否要將anaconda對應變量添加到/root/.bashrc中。我們選擇yes。(這里應該是追加的形式添加,應該不可能是覆蓋。感興趣的小伙伴可以做個實驗)
安裝完成后再看/root/.bashrc。這里多了一個anaconda的環境變量。
安裝完成后,由于anaconda的bin中也有python指令,而我們系統默認的python也是通過python指令執行的,如果不做處理,anaconda的python指令就會覆蓋系統的python。也就是后續我們執行python將會執行anaconda的python。所以需要先到anaconda/bin目錄下將python指令更改為其他名稱。
mv python py3
然后還需要更新下/root/.bashrc,此時相關的環境變量才能生效。
source /root/.bashrc
然后命令行輸入python看看是否是對應的系統默認的python2
輸入python3看看是否是對應anaconda的python3
正常情況下應該沒問題。
但是到這里,如果你再去執行pip,conda等指令會發現如下錯誤:
pip/conda bad interpreter: /home/username/anaconda/bin/python: no such file or directory
這是由于我們更改了anaconda的指令python,而conda,pip等指令時依賴于anaconda的python指令的,所以需要你到anaconda/bin目錄下通過vi conda,vi pip指令打開相關文件進行修改。如下圖所示將紅框中的python改為對應的python3(anaconda對應的python解釋器的別稱)即可。
然后再試下pip,conda指令,就OK了。
3、離線安裝python第三方包的方法
1、參考:https://blog.csdn.net/qq_16633405/article/details/97530620
除此之外還有一些方法:
考慮到沒網的狀態,所以我們可以模擬一個有網的實驗環境,然后在實驗環境中把需要的包先裝上,然后再將實驗環境anaconda/lib/python3/site-package/ 目錄下新安裝的第三方包放到生產環境對應的目錄下就可以了。或者直接在實驗環境中把所有需要的第三方包全打包然后一鍵轉移到生產環境等。
總結
linux生產服務器安裝新的環境最麻煩的工作。風險太高,整個操作必須謹慎謹慎再謹慎,如果有實驗環境,就先在實驗環境操作,把坑踩完后再去生產環境操作,操作的時候還要注意一些關鍵文件的備份,做的可回溯。總之,對于生產環境,再小心也不為過!
參考:https://blog.csdn.net/qq_16633405/article/details/97530620