python 项目搭建(类比 node 来学习)

说明,本文介绍的包管理工具类似于 node 的包管理工具,只是 uv 使用来管理 python 包的哇

npm 对应 uv 管理包的

npx 对应 nvx 不用下载某个包就可以执行某些功能

搭建环境

建议提前在环境变量中设置 python 的镜像源

js 复制代码
# On macOS and Linux.
$ echo 'export UV_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/' >> ~/.zshrc 

$ source ~/.zshrc

# Windows
通过系统属性 > 高级 > 环境变量 添加 UV_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/

下载安装包

下载 uv 来管理 python 包和项目,因为这个 uv 是使用 rust 来写的,于是理所当然的它 "快且安全",详情直接戳链接,也可以直接运行如下命令

shell 复制代码
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# pip install
pip install uv

# or pipx install
pipx install uv

检查是否安装成功

js 复制代码
# 检查 uv 是否安装成功
$ uv -V
uv 0.7.12 (dc3fd4647 2025-06-06)

# 检查 uvx 是否后可用
$ uvx pycowsay 'hello world!'

# 现实如下内容表示你已经安装成功了 🎉 🎉 🎉
  ------------
< hello world! >
  ------------
   \   ^__^
    \  (oo)_______
       (__)\       )/\
           ||----w |
           ||     ||

初始化一个项目

js 复制代码
uv init uv-py  

# 生成的项目结构如下,其他文件夹/文件你可以根据自己的需求来建立
- pyproject.toml 项目信息文件,比如项目的名称、版本号等(和 node 的 package.json 差不多哦)
- README.md 项目说明文件
- main.py  项目主程序入口
- .python-version 用于指定 Python 项目所使用的 Python 解释器版本

安装第三方包并运行项目程序

python 第三方包

js 复制代码
# 安装第三方包
uv add rich # rich 是一个 渲染富文本、表格语法高亮的终端

# 最终会在 pyproject.toml 中 dependencies 展示你下载的依赖
dependencies = [
    "rich>=14.0.0",
]

# main.py
from rich import print

def main():
    print("Hello, [bold magenta]World[/bold magenta]!")

if __name__ == "__main__":
    main()

# 运行项目 main.py
uv run main.py 
# 运行结果如下图所示

好的,简单项目搭建完毕,要搭建一个完整的 后端项目还可以参考 搭建一个 fastapi app

相关推荐
IVEN_1 小时前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
Ray Liang2 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
AI攻城狮2 小时前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling2 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
AI攻城狮6 小时前
用 Playwright 实现博客一键发布到稀土掘金
python·自动化运维
曲幽6 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
孟健21 小时前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞1 天前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽1 天前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers