」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > pyenv入門:Python開發必備工具

pyenv入門:Python開發必備工具

發佈於2024-09-27
瀏覽:588

Getting Started with pyenv: A Must-Have Tool for Python Development

什麼是 pyenv,為什麼需要它?

pyenv 是一個簡單但功能強大的工具,可讓您管理系統上的多個 Python 版本。身為 Python 開發人員,您經常需要處理需要不同 Python 版本的不同專案。手動管理這些版本可能很麻煩且容易出錯。這就是 pyenv 的用武之地,它可以輕鬆地在 Python 版本之間切換,確保您的專案始終在正確的版本上運行。

為什麼要使用 pyenv?

  • 版本管理:輕鬆安裝和切換不同的Python版本。

  • 項目隔離:確保每個項目使用正確的Python版本,避免相容性問題。

  • 靈活性:在多個 Python 版本上輕鬆測試您的程式碼。

如果您曾經遇到過版本衝突的問題,或者必須在同一台電腦上同時使用 Python 2.x 和 3.x,您將會欣賞 pyenv 如何簡化您的開發工作流程。

將 pyenv 與 Poetry 集成

pyenv 與 Poetry 配合得非常好,Poetry 是一個管理依賴項和 Python 環境的工具。如果您已經熟悉 Poetry(如果您不熟悉,請查看我關於 Poetry 入門的文章),您會發現將其與 pyenv 結合使用可以讓您更好地控制您的專案。

當您使用 Poetry 建立新專案時,它會自動使用 pyenv 為目錄設定的 Python 版本。這可確保在符合您的專案要求的環境中管理您的專案依賴項。

安裝 pyenv

讓我們從安裝 pyenv 開始。安裝過程會因您的作業系統而異。

在 macOS 上

使用自製程式:

brew update
brew install pyenv

為了避免它們意外連結到 Pyenv 提供的 Python,請將以下行加入互動式 shell 的配置中:

  • Bash/Zsh:
alias brew='env PATH="${PATH//$(pyenv root)\/shims:/}" brew'
  • 魚:
alias brew="env PATH=(string replace (pyenv root)/shims '' \"\$PATH\") brew"

在 Linux 上

  • 使用捲曲:
curl https://pyenv.run | bash

安裝後,將以下內容新增至 shell 設定檔(例如 .bashrc、.zshrc):

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
  • 使用套件管理器 在 Arch Linux 上可以藉助 pacman 進行安裝
sudo pacman -S pyenv

透過在終端機中執行以下命令將命令新增至 ~/.bashrc:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

對於 Zsh:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

對於魚:
如果您有 Fish 3.2.0 或更高版本,請以互動方式執行此操作:

set -Ux PYENV_ROOT $HOME/.pyenv
fish_add_path $PYENV_ROOT/bin

否則,執行下面的程式碼片段:

set -Ux PYENV_ROOT $HOME/.pyenv
set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths

現在,將其新增至 ~/.config/fish/config.fish:

pyenv init - | source

有關更多詳細信息,請查看他們的 GitHub。

使用 Pyenv

1) 檢查Python版本

查看目前使用的Python版本:

❯ pyenv versions
* system (set by /home/shanu/.pyenv/version)

2) 安裝Python版本

使用pyenv,您可以輕鬆安裝任何版本的Python:

❯ pyenv install 3.11.9

安裝python版本後,可以對專案進行全域或本機設定

3) 設定全域Python版本

不推薦,可能會導致您的系統出現問題
您可以設定一個全域Python版本,該版本將在您的系統中預設使用:

pyenv global 3.10.6 

4) 設定本地Python版本

您也可以為特定專案目錄設定本地Python版本。當您位於該目錄中時,此版本將覆寫全域版本:

❯ pyenv local 3.8.10

❯ pyenv versions
  system
* 3.11.9 (set by /home/shanu/test_folder/.python-version)

❯ python -V
Python 3.11.9 (my global version is 3.12.5)

要取消設置,只需運行:

❯ pyenv local --unset

❯ pyenv versions
* system (set by /home/shanu/.pyenv/version)
  3.11.9

❯ python -V
Python 3.12.5

5) 卸載Python版本

卸載不再需要的Python版本:

pyenv uninstall 3.11.9

結論

Pyenv 對 Python 開發人員來說是一個非常寶貴的工具,特別是與 Poetry 結合使用時。透過輕鬆管理Python版本,它可以讓您專注於編寫程式碼而不用擔心版本衝突。在你的下一個 Python 專案中嘗試一下吧!

版本聲明 本文轉載於:https://dev.to/shanu-kumawat/getting-started-with-pyenv-a-must-have-tool-for-python-development-1d3j?1如有侵犯,請聯絡study_golang@163 .com刪除
最新教學 更多>
  • 資料結構:建立自訂節點類
    資料結構:建立自訂節點類
    作为一名开发人员,掌握数据结构是一项至关重要的技能,可以释放您解决问题的潜力。虽然 Java 中的标准集合框架提供了坚实的基础,但有时您需要超越内置数据结构并创建自己的自定义解决方案。 在这篇文章中,我们将学习如何创建自定义节点类以及它们如何帮助您有效地解决各种问题。 DATA STRUCTURE...
    程式設計 發佈於2024-11-07
  • 透過專家免費課程掌握編程
    透過專家免費課程掌握編程
    歡迎來到我的 Udemy 個人資料!如果您對程式設計充滿熱情並渴望提高自己的技能,那麼您來對地方了。我設計了適合初學者和高級學習者的課程,確保每節課都充滿實踐知識和實踐經驗。 您可以期待什麼: 內容全面:從基本程式設計概念到進階演算法,我的課程涵蓋廣泛的主題,適合各個級別。 實踐項目:透過實際專...
    程式設計 發佈於2024-11-07
  • 瓦納卡aa eyyyy
    瓦納卡aa eyyyy
    `` 這是我網站的頂部欄或所謂的導覽列。 但事實就是如此。 我們會沒事的吧? Ul 檢查。 const paymentMethods = [ { supportedMethods: 'basic-card', data: { ...
    程式設計 發佈於2024-11-07
  • 如何使用 CSS 在單一元素上實現多個陰影?
    如何使用 CSS 在單一元素上實現多個陰影?
    使用CSS 在元素上實現多個陰影嘗試在CSS 中重新建立Photoshop 按鈕設計,您可能會在將多個框陰影套用到一個元素時遇到限制。單一元素。預設情況下,CSS 只允許一個活動的盒子陰影,無論是內部還是外部。 要克服這個限制,您可以利用 CSS3 提供的逗號分隔功能。這允許您在同一box-shad...
    程式設計 發佈於2024-11-07
  • Tailwind CSS 簡介 – 實用程式優先的框架
    Tailwind CSS 簡介 – 實用程式優先的框架
    Tailwind CSS 簡介 – 實用程式優先的框架 在本文中,我們將探索 Tailwind CSS,這是一個流行的實用程式優先 CSS 框架,可讓您快速建立現代網站,而無需編寫自訂 CSS。與傳統的 CSS 框架不同,Tailwind 不附帶預先設計的元件,而是提供實用程式類,...
    程式設計 發佈於2024-11-07
  • 如何使用 jQuery 確定 HTML 元素是否為空?
    如何使用 jQuery 確定 HTML 元素是否為空?
    使用jQuery 查找空HTML 元素如果您需要在Web 應用程式中確定HTML 元素是否為空,jQuery 提供了方便的方法這樣做的方法。以下是使用jQuery 完成此操作的方法:使用is(':empty') 選擇器:is(':empty') 選擇器檢查是否元素沒有...
    程式設計 發佈於2024-11-07
  • 如何在非整合網站的 JavaScript 控制台中包含 jQuery?
    如何在非整合網站的 JavaScript 控制台中包含 jQuery?
    在 JavaScript 控制台中包含 jQuery在 JavaScript 控制台中包含 jQuery 對於缺乏整合的網站來說是有益的。這使得開發人員能夠利用 jQuery 的功能,例如檢索表中的行數,甚至在本身不支援 jQuery 的網站上也是如此。 要在 JavaScript 控制台中包含 j...
    程式設計 發佈於2024-11-07
  • 儘管使用了有效的 INSERT 語句,為什麼我的 JDBC 程式碼仍會拋出 MySQLSyntaxErrorException?
    儘管使用了有效的 INSERT 語句,為什麼我的 JDBC 程式碼仍會拋出 MySQLSyntaxErrorException?
    JDBC Exception: MySQLSyntaxError with Valid SQL Statement在本文中,我們深入研究使用JDBC 向資料庫插入資料時遇到的問題。 MySQL 資料庫。儘管在 MySQL Workbench 中執行了有效的 INSERT 語句,我們還是收到了 MyS...
    程式設計 發佈於2024-11-07
  • 如何使用數組函數按列值比較物件數組?
    如何使用數組函數按列值比較物件數組?
    使用數組函數按列值比較物件數組許多程式語言都提供用於比較數組的內建函數。但是,這些函數通常使用原始資料類型和數組,而不是物件數組。這就提出瞭如何根據特定屬性或列來比較物件數組的問題。 為了解決這個問題,PHP 提供了 array_udiff,該函數可以透過指定自訂比較函數來比較物件陣列。考慮以下範例...
    程式設計 發佈於2024-11-07
  • React 的 useEffect Hook 簡化:像專業人士一樣管理副作用
    React 的 useEffect Hook 簡化:像專業人士一樣管理副作用
    了解 React 中的 useEffect:从零到英雄 React 已成为构建动态用户界面最流行的 JavaScript 库之一。 React 中最重要的钩子之一是 useEffect,它允许开发人员管理功能组件中的副作用。副作用包括获取数据、设置订阅或手动操作 DOM 等操作。在...
    程式設計 發佈於2024-11-07
  • 擴展 Node.js 應用程式:技術、工具和最佳實踐
    擴展 Node.js 應用程式:技術、工具和最佳實踐
    随着 Node.js 应用程序的增长,对更好的性能和可扩展性的需求也在增加。 Node.js 旨在处理大规模数据密集型应用程序,但了解如何正确扩展它对于在负载下保持性能和可用性至关重要。在本文中,我们将介绍有效扩展 Node.js 应用程序的关键技术和工具。 为什么要扩展 Node....
    程式設計 發佈於2024-11-07
  • 使用 PHP 的動態圖像畫廊:在線上展示您的作品
    使用 PHP 的動態圖像畫廊:在線上展示您的作品
    使用PHP建立動態影像畫廊的步驟:安裝相依性:PHP GD庫和(可選)ImageMagick。建立畫廊頁面:循環遍歷要顯示的圖像並產生縮圖(使用createThumbnail()函數)。輸出影像縮圖:使用HTML建立一個無序列表來顯示縮圖。新增其他功能(選用):分頁、排序​​、篩選、上傳表單和燈箱效...
    程式設計 發佈於2024-11-07
  • 學習 CSS:我設計網頁樣式的第一步
    學習 CSS:我設計網頁樣式的第一步
    從週一到今天,我向前邁出了重要的一步,深入研究了 CSS,一種融入網頁的樣式語言。 ? 先學習基礎知識-選擇器、程式碼區塊、宣告及其值。看到幾行程式碼如何將純 HTML 轉換為具有視覺吸引力的內容是令人興奮的。在CSS 中,樣式可以透過三種方式實現:內聯樣式(透過在開始標記中添加style 屬性)...
    程式設計 發佈於2024-11-07
  • 新手前端開發人員面試問題
    新手前端開發人員面試問題
    HTML Interview - 5 Questions 1. What is HTML5 and what are its new features? Answer: HTML5 is the latest version of HTML, which includes new semantic...
    程式設計 發佈於2024-11-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3