Linux下多版本python共存時,默認執行路徑修改方法


遇到的問題和環境是這樣:首先workspace上存在一個Python2.7和一個Python3.5,其中Python3.5是理想的運行環境,有很多自定義模塊,運行代碼時需要這個環境。原本默認是在這個環境下跑的,后來安裝了一個叫miniconda3的東西,里面自帶一個Python3.7環境,於是問題來了,所有執行程序全部變成了使用這個新的Python3.7環境來跑,這個新環境沒有安裝和適配需要的模塊,導致程序全部報錯。

現在要做的是將環境從Python3.7改回原來的Python3.5。
通過which python得知當前bash里默認跑的Python環境的路徑位置。

我們得知,每個程序在跑的時候會根據~/.bashrc 或 ~/.zshrc中的腳本配置的路徑來按順序尋找可能的路徑。也就是說你通過 export方法https://blog.csdn.net/Kevinhanser/article/details/79352109來更新你的環境變量時,是即時有效的,這個方法可以立即解決你某個程序環境錯誤的問題,立即使用你想要的環境(當然你要知道你需要的環境的正確路徑才能加到PATH中)

當然還有別的方法一勞永逸的更改環境變量,你可以將你需要的正確路徑寫入~/.bashrc 中,當然這個文件你肯定不陌生,里面添加了各種程序的PATH以及某些自定義的縮寫。PATH的組成形式類似字符串的+=,他會將某個路徑,如PATH=/home/tuotu/bin:$PATH的方式,不斷延長這個字符串,這個串以:為分隔符,每次按順序便利該串的每一個路徑,遇到能用的就會使用這個路徑指向的環境。當然你也可以反過來寫,$PATH 寫新路徑的前面。這樣相當於將新路經的位置放在了相對后面的位置。如過各個路徑所使用的環境不沖突的話當然無所謂,但是此處是多個Python的存在,語法都差不多,只是內容不一樣了,所以要嚴格區分。目前的情況是miniconda3中Python3.7的路徑被放到了PATH中相對較前的位置。為了解決這個問題,我們應該把正確的路徑放到Python3.7的前面,使系統先遍歷到這個路徑,而不是Python3.7.

之后我更改了路徑,無意中在~/.bashrc把正確的路徑放到了miniconda3的PATH之前,這導致我設定的路徑直接“無效”,因為這畢竟是一個腳本,按順序執行,先將正確的路徑放到了前面,后面就會被錯誤路徑蓋住,導致正確路徑失效,錯誤路徑被讀入且使用。所以編輯腳本的好習慣還是將最新的最需要的PATH放到腳本的末尾部分~問題解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM