当前位置: 首页 > news >正文

Python学习小记-类的引用,python下载的依赖管理

文章目录

  • 类和对象
  • 依赖管理
    • requirements.txt 文件格式
    • 本地虚环境
      • 创建虚拟环境
      • 手动激活虚拟环境
      • 本地包安装
    • uv 使用方法

类和对象

引用方式:
import 另一个文件名
from 另一个文件名 import 类名

假设同级目录下有一个文件:my_classes.py
my_classes.py 中定义了一个类:class MyClass: …
新文件(比如 main.py)中:

importmy_classes obj=my_classes.MyClass()
frommy_classesimportMyClass obj=MyClass()

依赖管理

python 的依赖管理比较多和混乱,最初的使用比较多的requirements.txt 到 统一的 pyproject.toml;

requirements.txt 文件格式

package_name # 安装最新版(不推荐,因为结果不确定)
package_name==1.2.3 # 精确指定版本
package_name>=1.2,<2.0 # 版本范围
package_name~=1.2.3 # 兼容版本(约等于 >=1.2.3, ==1.2.*)

作用:依赖环境统一,类似java的pom.xml
使用方式:

pip install -r requirements.txt

已有项目生成requirements.txt命令:

pip freeze > requirements.txt

后面改用:pyproject.toml 文件管理依赖

uv、Poetry、PDM 都是依赖管理工具,但是它们的使用方式和功能略有不同。uv 是一个简单的依赖管理工具,而 Poetry 和 PDM 则是更复杂的工具,支持更多功能。

本地虚环境

本地虚拟环境下依赖独立,pip install 安装是全局安装,创建本地虚拟环境则依赖独立的一个干净的环境,防止依赖的库冲突;

创建虚拟环境

python -m venv .venv

手动激活虚拟环境

.venv\Scripts\activate

原理是:
import sys,pprint
pprint.pprint(sys.path)
就是修改了sys.path,添加了.venv\Lib\site-packages目录

本地包安装

pip install -e .

原始虚拟环境操作步骤:

# 创建虚拟环境 python -m venv .venv # 激活虚拟环境 .venv\Scripts\activate # 安装包相关依赖管理 pyproject.toml # 安装依赖 pyproject.toml 的依赖 pip install -e .

uv 使用方法

安装uv:

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

验证uv安装情况:
cmd直接输入:uv

项目使用uv管理虚拟环境相关依赖:
1.要有pypoject.toml文件(初始只保留基础的name,versino,description节点)
示例:

[project] name = "周报工具" version = "1.0.0" dependencies = [ ]

2.使用 uv add 依赖名称
如果是已有项目的源码则执行:uv sync

uv python list — 列出uv支持的python版本
uv python install cpython3.12 — 安装某个python版本 (3.12)
uv run -p 3.12 xxx.py — 使用特定版本python运行xxx.py
uv run -p 3.12 python — 运行python交互界面
uv run xxx.py — 使用系统python或当前工程的虚拟环境运行xxx.py
uv init — 创建工程
uv add pydantic_ai — 添加依赖 (pydantic_ai)
uv tree — 打印依赖树
uv remove pydantic_ai — 删除依赖
uv build — 编译工程

http://www.cnnetsun.cn/news/3272749.html

相关文章:

  • 【Atlas】 Spark SQL 的执行计划(LogicalPlan/PhysicalPlan)能否被 Atlas 捕获?社区有哪些集成方案?
  • ADP5350与PIC18F85J50嵌入式电源管理方案详解
  • AI 习惯追踪的反馈设计:鼓励不是堆砌赞美,而是记录可见进步
  • 2026年免疫细胞存储行业现状与用户关注方向解析
  • 使用LocalDate和LocalDateTime接收日期时间
  • elasticsearch学习笔记(三十五)——Elasticsearch 索引管理
  • 5分钟打造你的专属知识中心:Obsidian Homepage完全指南
  • Go error 处理:errors.Is/As 与错误包装
  • 【小白也能轻松玩转龙虾】虾壳云一键部署一站式操作,下载解压启用 OpenClaw v2.7.9(附最新安装包)
  • 设计师怎么把 GPT-Image 当作灵感草图工具?从创意到提案的实战流转指南
  • 2. 文字处理
  • Linux diffstat 命令详解
  • Oracle
  • 3分钟搞定B站缓存视频转换:m4s-converter完全指南
  • 智能时代官网Geo内容优化策略:构建AI可信赖的信息枢纽
  • 意念控制机器人:从脑机接口到远程意念指令的无限可能
  • Git 同步 Obsidian 和 Nutstore Sync 怎么选?两种方案的区别、适用场景和选择建议
  • 解密微信QQ防撤回:告别消息消失的终极方案
  • 海康摄像头RTSP流问题 method DESCRIBE failed: 401 Unauthorized
  • Alacritty配置优化:Catppuccin主题与其他工具的集成方案
  • Appium自动化测试入门:从环境搭建到第一个脚本编写
  • 如何为阿里云 Elasticsearch 创建推理端点,连接器,Workflow 并写入数据
  • OpenAI 推出 GPT-Live:告别回合制,AI 语音交互体验大升级!
  • ITIL 4 DPI认证信息整理
  • RimSort终极指南:告别《边缘世界》模组冲突的5个高效技巧
  • Typora绘制-用户旅程图
  • 私有化部署RustDesk中继服务器
  • 微软 Project Solara 展示 AI 工牌与智控中枢,卡片式 AI 硬件成手机外设新趋势
  • Reactive Resume深度调试指南:从模板渲染到容器部署的5大技术挑战
  • 前OpenAI安全副总裁翁荔新博客:AI自进化或先从Harness开始,揭示现实路径与瓶颈