如何使用uv構(gòu)建Python包并本地安裝步驟詳解
前言
本文將逐步指導(dǎo)你創(chuàng)建一個簡單的 Python 包,并將其本地安裝到機器或云環(huán)境中。完成本教程后,你將擁有一個可復(fù)用的 Python 庫,可直接通過 pip
安裝或在項目中導(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
快速初始化項目結(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 # 項目元數(shù)據(jù)和依賴配置 ├── README.md # 項目文檔 └── .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
填寫項目元數(shù)據(jù)和依賴項:
[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ā)包
運行以下命令生成 .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:以編輯模式安裝(實時同步代碼)
pip install -e .
Step 6: 測試安裝
打開 Python 終端驗證:
from my_package.your_code import greet print(greet("World")) # 輸出:Hello, World!
關(guān)鍵注意事項
- 模塊化設(shè)計:將代碼按功能拆分為獨立模塊,便于維護和復(fù)用。
- 依賴管理:通過
dependencies
字段聲明依賴,或使用uv add <package>
自動更新pyproject.toml
。 - 版本控制:每次發(fā)布新版本前更新
version
字段,避免沖突。
擴展應(yīng)用場景
- 云部署:將打包后的代碼上傳至 Databricks 或 AWS Lambda,直接調(diào)用云端計算資源。
- 協(xié)作開發(fā):通過 PyPI 發(fā)布包(需額外配置),團隊成員可直接
pip install
同步代碼。
通過本文,你已掌握 Python 包的基礎(chǔ)構(gòu)建和本地安裝流程。下一階段可嘗試 將包發(fā)布到 PyPI,實現(xiàn)全球范圍內(nèi)的代碼共享!
總結(jié)
到此這篇關(guān)于如何使用uv構(gòu)建Python包并本地安裝的文章就介紹到這了,更多相關(guān)uv構(gòu)建Python包并本地安裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pygame多種方式實現(xiàn)屏保操作(自動切換、鼠標(biāo)切換、鍵盤切換)
這篇文章主要介紹了pygame多種方式實現(xiàn)屏保操作(自動切換、鼠標(biāo)切換、鍵盤切換),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04pytorch中如何使用DataLoader對數(shù)據(jù)集進行批處理的方法
這篇文章主要介紹了pytorch中如何使用DataLoader對數(shù)據(jù)集進行批處理的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08用python打包exe應(yīng)用程序及PyInstaller安裝方式
PyInstaller 制作出來的執(zhí)行文件并不是跨平臺的,如果需要為不同平臺打包,就要在相應(yīng)平臺上運行PyInstaller進行打包。今天通過本文給大家介紹用python打包exe應(yīng)用程序及PyInstaller安裝方式,感興趣的朋友一起看看吧2021-12-12python3實現(xiàn)UDP協(xié)議的服務(wù)器和客戶端
這篇文章主要為大家詳細(xì)介紹了python3實現(xiàn)UDP協(xié)議的服務(wù)器和客戶端,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06