【Ubuntu】安裝使用pyenv - Python版本管理

當我們在Ubuntu上使用Python進行開發的時候,可能會遇到版本不兼容的問題,當然你可以選擇使用apt的方式安裝不同版本的python環境
但是存在一定的問題:安裝不同版本的Python通常不會改變默認的python3命令指向的版本,而且就算你進行了修改,內部的很多配置還是會使用原來的版本無法做到一次替換整體替換(而且很多報錯,不推薦!!!)

那么接下來介紹pyenv啦

pyenv

1. 安裝依賴項

首先,你需要安裝pyenv的一些依賴項,包括git(如果你打算從Git倉庫克隆pyenv),curl(雖然在這個特定情況下不是必需的,但它是Ubuntu上常用的工具),make,build-essential,libssl-dev,zlib1g-dev,libbz2-dev,libreadline-dev,libsqlite3-dev,wget,curl,llvm,libncurses5-dev,libncursesw5-dev,xz-utils,tk-dev和libffi-dev。

打開終端,然后運行以下命令來安裝這些依賴項:

sudo apt-get update  
sudo apt-get install -y git make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev

2. 安裝pyenv

有幾種方法可以安裝pyenv,但最常見的是通過Git克隆其GitHub倉庫到你的用戶主目錄下的一個.pyenv目錄中。
首先,確定你的主目錄(通常是/home/你的用戶名),然后克隆pyenv倉庫:

cd ~  
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

如果出現連接超時的報錯,先試試能不能ping通GitHub(畢竟是國外的網站) ping www.github.com

3. 配置環境變量

接下來,你需要配置你的shell以包含pyenv。這通常涉及到在你的shell配置文件中(如.bashrc,.bash_profile,.zshrc等)添加幾行。
對于Bash用戶,打開你的~/.bashrc文件并添加以下行:

export PYENV_ROOT="$HOME/.pyenv"  
export PATH="$PYENV_ROOT/bin:$PATH"  # 如果你的shell是bash,請啟用下面的命令  
if [ -d "$PYENV_ROOT/shims" ]; then  export PATH="$PYENV_ROOT/shims:$PATH"  
fi  
# 初始化pyenv(對于bash shell)  
eval "$(pyenv init --path)"  
eval "$(pyenv init -)"

對于Zsh用戶,打開你的~/.zshrc文件并添加類似的行。

4. 應用更改

為了使更改生效,你需要重新加載你的shell配置文件或重新打開你的終端。
對于Bash用戶,你可以通過運行source ~/.bashrc來重新加載配置文件。

5. 驗證安裝

最后,驗證pyenv是否已正確安裝。在你的終端中運行以下命令:

pyenv --version

如果一切設置正確,你將看到pyenv的版本號。

# 類似于這樣
hx@LAPTOP-H2EI4I6A:~/test/backend$ pyenv --version
pyenv 2.4.7

6. 使用pyenv

現在,你可以開始使用pyenv來安裝和管理不同版本的Python了。

6.1 安裝

例如,要安裝Python 3.8.5,你可以運行:

pyenv install 3.8.5
hx@LAPTOP-H2EI4I6A:~/test/backend$ pyenv install 3.8.5
Downloading Python-3.8.5.tar.xz...
-> https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz

假如說你一直卡在這種情況(那么就是網絡問題啦,因為pyenv會自動到github上下載,速度超慢,這邊給大家推薦通過鏡像網站下載)

cd ~/.pyenv
sudo mkdir cache
sudo wget -c https://mirrors.huaweicloud.com/python/3.12.2/Python-3.12.2.tar.xz -P  ~/.pyenv/cache/
pyenv install 3.12.2 -v

首先先打開這個網址找到自己想下的版本https://mirrors.huaweicloud.com/python進行版本號替換

6.2 列出所有版本

要列出所有已安裝的Python版本,你可以運行:

pyenv versions

要列出pyenv所有能下載的版本,可以運行:

pyenv install --list

在這里插入圖片描述

6.3 設置版本

要設置全局Python版本,你可以運行:

pyenv global 3.8.5

要在特定目錄下設置Python版本,你可以在該目錄下運行:(記得切換目錄)

pyenv local 3.8.5

這樣,你就成功地在Ubuntu上安裝了pyenv并可以開始使用它來管理Python版本了。

6.4 查看當前Python版本

python3 --version

6.5 刪除指定Python版本

pyenv uninstall 3.12.2

7. 刪除pyenv

rm -rf ~/.pyenv

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45480.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45480.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45480.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分布式對象存儲minio

本教程minio 版本:RELEASE.2021-07-*及以上 1. 分布式文件系統應用場景 互聯網海量非結構化數據的存儲需求 電商網站:海量商品圖片視頻網站:海量視頻文件網盤 : 海量文件社交網站:海量圖片 1.1 Minio介紹 MinIO 是一個基于Ap…

ubuntu服務器部署vue springboot前后端分離項目

上傳構建好的vue前端文件 vscode構建vue項目,會生成dist目錄 npm run build在服務器root目錄新建/projects/www目錄,把dist目錄下的所有文件,上傳到此目錄中 上傳ssl證書 上傳ssl證書到/projects目錄中 配置nginx 編輯 /etc/nginx/site…

微服務邊界守衛:Eureka中服務隔離策略的實現

微服務邊界守衛:Eureka中服務隔離策略的實現 在微服務架構中,服務隔離是一項關鍵策略,用于確保服務之間的故障不會相互影響,同時提供更加安全和穩定的運行環境。Eureka作為Netflix開源的服務發現框架,提供了一些機制來…

Java 網絡協議面試題答案整理,最新面試題

TCP和UDP的主要區別是什么? TCP(傳輸控制協議)和UDP(用戶數據報協議)的主要區別在于TCP是面向連接的協議,而UDP是無連接的協議。這導致了它們在數據傳輸方式、可靠性、速度和使用場景方面的不同。 1、連接方式: TCP是面向連接的協議,數據傳輸前需要三次握手建立連接。U…

區塊鏈與云計算的融合:新時代數據安全的挑戰與機遇

隨著信息技術的迅猛發展,云計算和區塊鏈技術作為兩大前沿技術在各自領域內展示出了巨大的潛力。而它們的結合,即區塊鏈與云計算的融合,正在成為數據安全領域的新趨勢。本文將探討這一融合對數據安全帶來的挑戰和機遇,以及其在企業…

平替ChatGPT的多模態智能體來了

在人工智能領域,多模態技術的融合與應用已成為推動技術革新的關鍵。今天,我們用智匠AI實現了完全由國產模型驅動的多模態智能體——智醬v0.1.0,它不僅能夠媲美ChatGPT的多模態能力,更在聯網搜索、圖片識別、畫圖及圖表生成等方面展…

redis原理之底層數據結構(二)-壓縮列表

1.緒論 壓縮列表是redis最底層的結構之一,比如redis中的hash,list在某些場景下使用的都是壓縮列表。接下來就讓我們看看壓縮列表結構究竟是怎樣的。 2.ziplist 2.1 ziplist的組成 在低版本中壓縮列表是由ziplist實現的,我們來看看他的結構…

Stable Diffusion AI繪畫全攻略:從理論到實戰,解鎖創意圖畫的魔法之門

在科技的飛速發展中,Stable Diffusion AI繪畫技術為藝術創作帶來了前所未有的革命性變化。這項技術由CompVis、Stability AI和LAION聯合研發,通過深度學習模型,將文字描述轉化為生動的藝術作品,極大地拓寬了創意與想象的邊界。本文…

大數據面試SQL題-筆記01【運算符、條件查詢、語法順序、表連接】

大數據面試SQL題復習思路一網打盡!(文檔見評論區)_嗶哩嗶哩_bilibiliHive SQL 大廠必考常用窗口函數及相關面試題 大數據面試SQL題-筆記01【運算符、條件查詢、語法順序、表連接】大數據面試SQL題-筆記02【...】 目錄 01、力扣網-sql題 1、高頻SQL50題&#xff08…

TCP、UDP、TCP與UDP的區別及聯系

目錄 TCP和UDP區別1.連接2.交互個數3.可靠性4.傳輸方式5.適用場景 怎么實現一個可靠的UDP傳輸TCP詳解UDP詳解 TCP和UDP區別 1.連接 TCP 面向連接的,傳輸數據前先要建立連接。 UDP 是不需要連接,即刻傳輸數據。 2.交互個數 TCP 是一對一通信。 UDP 支…

數據結構——hash(hashmap源碼探究)

hash是什么? hash也稱為散列,就是把任意長度的輸入,通過散列算法,變成固定長度的輸出,這個輸出值就是散列值。 舉例來說明一下什么是hash: 假設我們要把1~12存入到一個大小是5的hash表中,我們…

礦產資源潛力預測不確定性評價

研究目的: 不確定性評估: 到底什么叫不確定性,簡單來說就是某區域內的礦產資源量,并不確定到底有多少,你需要給出一個評估或者分布。 研究方法: 1.以模糊集來表示某些量: 關于什么是模糊集&am…

信通院全景圖發布 比瓴科技領跑軟件供應鏈安全,多領域覆蓋數字安全服務

近日,中國信息通信研究院在2024全球數字經濟大會—數字安全生態建設專題論壇正式發布首期《數字安全護航技術能力全景圖》(以下簡稱全景圖)。 比瓴科技入選軟件供應鏈安全賽道“開發流程安全管控、交互式安全測試、靜態安全測試、軟件成分分…

智慧水利:邁向水資源管理的新時代,結合物聯網、云計算等先進技術,闡述智慧水利解決方案在提升水災害防控能力、優化水資源配置中的關鍵作用

本文關鍵詞:智慧水利、智慧水利工程、智慧水利發展前景、智慧水利技術、智慧水利信息化系統、智慧水利解決方案、數字水利和智慧水利、數字水利工程、數字水利建設、數字水利概念、人水和協、智慧水庫、智慧水庫管理平臺、智慧水庫建設方案、智慧水庫解決方案、智慧…

數據分析——numpy教程

1.NumPy: 是Python的一個開源的數值計算庫。可以用來存儲和處理大型矩陣,比python自身的嵌套列表結構要高效,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫,包括數學、邏輯、形狀操作、排序、…

前端數據加密,后端java解密

在前端對數據進行加密后,通常會使用一些加密算法和技術,如AES(Advanced Encryption Standard)進行數據加密。然后,將加密后的數據發送到后端。后端接收到加密數據后,使用Java語言進行解密。 以下是一個簡單…

MKS電源管理軟件OPTIMA RPDG DCG系列RF Elit600系列

MKS電源管理軟件OPTIMA RPDG DCG系列RF Elit600系列

數據結構——考研筆記(三)線性表之單鏈表

文章目錄 2.3 單鏈表2.3.1 知識總覽2.3.2 什么是單鏈表2.3.3 不帶頭結點的單鏈表2.3.4 帶頭結點的單鏈表2.3.5 不帶頭結點 VS 帶頭結點2.3.6 知識回顧與重要考點2.3.7 單鏈表的插入和刪除2.3.7.1 按位序插入(帶頭結點)2.3.7.2 按位序插入(不帶…

spring事務 @Transactional

文章目錄 1. 簡介1.1 什么是事務1.2 什么是Spring事務管理1.3 Transactional注解的作用 2. Transactional注解的使用2.1 如何在Spring中使用Transactional2.2 Transactional的屬性配置 3. Transactional的工作原理3.1 Spring如何管理事務3.2 Transactional的底層實現 4. Transa…

數學建模·灰色關聯度

灰色關聯分析 基本原理 灰色關聯分析可以確定一個系統中哪些因素是主要因素,哪些是次要因素; 灰色關聯分析也可以用于綜合評價,但是由于數據預處理的方式不同,導致結果 有較大出入 ,故一般不采用 具體步驟 數據預處理…