欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用uv構(gòu)建Python包并本地安裝步驟詳解

 更新時間:2025年06月06日 10:05:13   作者:夢想畫家  
uv是一個由Astral開發(fā)的超快Python包安裝工具和解析器,使用Rust編寫,旨在替代pip、pip-tools和virtualenv,提供更快的性能和更好的依賴管理,這篇文章主要介紹了如何使用uv構(gòu)建Python包并本地安裝的相關(guān)資料,需要的朋友可以參考下

前言

本文將逐步指導(dǎo)你創(chuàng)建一個簡單的 Python 包,并將其本地安裝到機(jī)器或云環(huán)境中。完成本教程后,你將擁有一個可復(fù)用的 Python 庫,可直接通過 pip 安裝或在項(xiàng)目中導(dǎo)入使用。

步驟詳解

Step 0: 選擇構(gòu)建工具 - 使用 uv

  • 推薦理由uv 是類似 poetry 的現(xiàn)代打包工具,默認(rèn)使用 hatchling 作為構(gòu)建后端,支持 PEP 517/518 標(biāo)準(zhǔn)。

  • 安裝方法:

    # 通過 Homebrew 安裝(MacOS)
    brew install uv
    # 或直接通過 PyPI
    pip install uv
    

Step 1: 創(chuàng)建包目錄結(jié)構(gòu)

使用 uv 快速初始化項(xiàng)目結(jié)構(gòu):

uv init --lib my-package

生成后的目錄如下:

my_package/
├── src/
│   └── my_package/
│       ├── __init__.py       # 標(biāo)記為 Python 包
│       └── your_code.py      # 存放核心代碼
│       └── py.typed          # 類型標(biāo)注聲明(可選)
├── pyproject.toml          # 項(xiàng)目元數(shù)據(jù)和依賴配置
├── README.md               # 項(xiàng)目文檔
└── .python-version         # 指定 Python 版本

Step 2: 編寫包代碼

在 src/my_package/your_code.py 中添加功能代碼:

# my_package/your_code.py
def greet(name: str) -> str:
    """返回問候語"""
    return f"Hello, {name}!"

Step 3: 配置 pyproject.toml

填寫項(xiàng)目元數(shù)據(jù)和依賴項(xiàng):

[project]
name = "my-package"
version = "0.1.0"
description = "一個簡單的本地 Python 包示例"
readme = "README.md"
authors = [{ name = "Sarah Glasmacher", email = "sarah@example.com" }]
requires-python = ">=3.11"
dependencies = []

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

Step 4: 構(gòu)建分發(fā)包

運(yùn)行以下命令生成 .whl 或 .tar.gz 文件:

uv build

構(gòu)建完成后,dist/ 目錄下會生成類似以下的文件:

dist/
├── my_package-0.1.0-py3-none-any.whl
└── my_package-0.1.0.tar.gz

Step 5: 本地安裝包

方法 1:直接安裝構(gòu)建產(chǎn)物

pip install dist/my_package-0.1.0-py3-none-any.whl

方法 2:以編輯模式安裝(實(shí)時同步代碼)

pip install -e .

Step 6: 測試安裝

打開 Python 終端驗(yàn)證:

from my_package.your_code import greet
print(greet("World"))  # 輸出:Hello, World!

關(guān)鍵注意事項(xiàng)

  • 模塊化設(shè)計:將代碼按功能拆分為獨(dú)立模塊,便于維護(hù)和復(fù)用。
  • 依賴管理:通過 dependencies 字段聲明依賴,或使用 uv add <package> 自動更新 pyproject.toml。
  • 版本控制:每次發(fā)布新版本前更新 version 字段,避免沖突。

擴(kuò)展應(yīng)用場景

  • 云部署:將打包后的代碼上傳至 Databricks 或 AWS Lambda,直接調(diào)用云端計算資源。
  • 協(xié)作開發(fā):通過 PyPI 發(fā)布包(需額外配置),團(tuán)隊(duì)成員可直接 pip install 同步代碼。

通過本文,你已掌握 Python 包的基礎(chǔ)構(gòu)建和本地安裝流程。下一階段可嘗試 將包發(fā)布到 PyPI,實(shí)現(xiàn)全球范圍內(nèi)的代碼共享!

總結(jié)

到此這篇關(guān)于如何使用uv構(gòu)建Python包并本地安裝的文章就介紹到這了,更多相關(guān)uv構(gòu)建Python包并本地安裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在django中使用自定義標(biāo)簽實(shí)現(xiàn)分頁功能

    在django中使用自定義標(biāo)簽實(shí)現(xiàn)分頁功能

    這篇文章主要介紹了在django中使用自定義標(biāo)簽實(shí)現(xiàn)分頁功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Python爬蟲之urllib基礎(chǔ)用法教程

    Python爬蟲之urllib基礎(chǔ)用法教程

    這篇文章主要為大家詳細(xì)介紹了Python爬蟲1.1 urllib基礎(chǔ)用法教程,用于對Python爬蟲技術(shù)進(jìn)行系列文檔講解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python將文字轉(zhuǎn)成語音并讀出來的實(shí)例詳解

    Python將文字轉(zhuǎn)成語音并讀出來的實(shí)例詳解

    今天小編就為大家分享一篇Python將文字轉(zhuǎn)成語音并讀出來的實(shí)例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 淺談Python中用datetime包進(jìn)行對時間的一些操作

    淺談Python中用datetime包進(jìn)行對時間的一些操作

    下面小編就為大家?guī)硪黄獪\談Python中用datetime包進(jìn)行對時間的一些操作。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • python的構(gòu)建工具setup.py的方法使用示例

    python的構(gòu)建工具setup.py的方法使用示例

    本篇文章主要介紹了python的構(gòu)建工具setup.py的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • python使用pandas實(shí)現(xiàn)篩選功能方式

    python使用pandas實(shí)現(xiàn)篩選功能方式

    在數(shù)據(jù)分析的過程中通常要對數(shù)據(jù)進(jìn)行清洗與處理,而其中比較重要和常見的操作就有對數(shù)據(jù)進(jìn)行篩選與查詢,下面這篇文章主要給大家介紹了關(guān)于python使用pandas實(shí)現(xiàn)篩選功能方式的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • python隨機(jī)3分鐘發(fā)送一次消息完整代碼

    python隨機(jī)3分鐘發(fā)送一次消息完整代碼

    最近我接到這樣的任務(wù)需求有一個實(shí)時任務(wù),想要間隔3分鐘發(fā)送,最近的一次消息,接下來通過本文給大家分享python隨機(jī)3分鐘發(fā)送一次消息,需要的朋友可以參考下
    2024-03-03
  • np.meshgrid中的indexing參數(shù)問題解決

    np.meshgrid中的indexing參數(shù)問題解決

    本文主要介紹了np.meshgrid中的indexing參數(shù)問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 關(guān)于Python中的if __name__ == __main__詳情

    關(guān)于Python中的if __name__ == __main__詳情

    在學(xué)習(xí)Python的過程中發(fā)現(xiàn)即使把if __name__ == ‘__main__’ 去掉,程序還是照樣運(yùn)行。很多小伙伴只知道是這么用的,也沒有深究具體的作用。這篇文字就來介紹一下Python中的if __name__ == ‘__main__’的作用,需要的朋友參考下文
    2021-09-09
  • Webots下載安裝?+?Pycharm聯(lián)調(diào)使用教程

    Webots下載安裝?+?Pycharm聯(lián)調(diào)使用教程

    Webots是一個開源的三維移動機(jī)器人模擬器,它最初是作為研究移動機(jī)器人中各種控制算法的研究工具開發(fā)的,自2018年12月起,Webots作為開源軟件發(fā)布,并獲得Apache 2.0許可證,這篇文章主要介紹了Webots下載安裝?+?Pycharm聯(lián)調(diào)?,需要的朋友可以參考下
    2023-02-02

最新評論