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

Python 虚拟环境完全指南:避免包管理混乱

Python 虚拟环境完全指南:避免包管理混乱

在 Python 开发中,依赖管理是一个让人头疼的问题。你是否遇到过这样的情况:项目 A 需要 Django 2.x,而项目 B 必须用 Django 4.x?或者突然发现系统自带的 Python 被改乱了,导致其他工具无法运行?

今天我们就来彻底解决这些问题。

什么是虚拟环境?

虚拟环境是一个独立的 Python 运行环境。它包含:

  • 独立的site-packages目录
    • 独立的 Python 解释器副本
    • 独立的 pip 包管理器
      简单说,就是给你的每个项目分配一个"独立房间",它们之间互不干扰。

venv:内置解决方案

Python 3.3 之后,venv已经内置到标准库中,无需额外安装。

创建虚拟环境

# 在项目目录下创建python-mvenv myenv# 指定 Python 版本(系统有多个版本时)python3.10-mvenv myenv

激活虚拟环境

Linux / macOS:

sourcemyenv/bin/activate

Windows:

myenv\Scripts\activate

激活后,命令行前面会出现环境名称,表示你在虚拟环境内了。

常用操作

# 查看已安装的包pip list# 导出依赖列表pip freeze>requirements.txt# 从文件安装依赖pipinstall-rrequirements.txt# 退出虚拟环境deactivate

requirements.txt 的最佳实践

不要直接pip freeze全部包,建议手动维护,只写直接依赖:

requests==2.28.0 pandas>=1.5.0

因为pip freeze会把所有间接依赖都列出来,导致文件过于冗长。

虚拟环境放在哪里?

建议把虚拟环境放在项目目录下,但添加到.gitignore

# .gitignore venv/ .venv/ __pycache__/ *.pyc

这样 git 不会跟踪虚拟环境目录,只同步代码和依赖文件。

总结

操作命令
创建python -m venv venv
激活source venv/bin/activate
退出deactivate
导出依赖pip freeze > requirements.txt
安装依赖pip install -r requirements.txt

使用虚拟环境,让你的 Python 项目保持干净整洁,再也不用担心版本冲突问题了。


觉得有用的话,欢迎收藏和转发!

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

相关文章:

  • Qwen3-0.6B-FP8快速部署教程:从镜像启动到模型调用的全流程
  • MusePublic圣光艺苑完整指南:CSDN图床集成+真迹分享链接生成机制
  • 保姆级攻略投票平台
  • 笔试训练48天:删除公共字符
  • STM32实战:旋转编码器防抖的3种方法对比(附F407完整代码)
  • LightOnOCR-2-1B镜像免配置:集成Prometheus监控指标与Grafana可视化看板
  • 从理论到实践:伺服三环控制的参数整定与Simulink仿真指南
  • 5个理由告诉你为什么Bebas Neue是设计师必备的开源标题字体解决方案
  • 手把手教你用Flume+Kafka+Maxwell搞定电商数仓实时数据采集(附完整脚本)
  • 告别手动整理!UDOP-large一键部署,英文文档智能分析原来这么简单
  • RabbitMQ实战:队列最大长度设置全解析(限制消息数+限制字节数)
  • 深求·墨鉴惊艳效果展示:水墨交互下高精度OCR识别作品全览
  • 具身智能表征的ImageNet来了!机器人终于看懂了人类世界
  • Java Stream sorted()排序实战:从基础到高级Comparator应用
  • 从数据到情感:基于SVM的社交媒体情绪分析实战
  • Qwen3-0.6B零基础部署:5分钟在Jupyter中调用大模型
  • Clawdbot效果展示:Qwen3-32B对PDF/Excel上传内容的结构化解析与问答能力
  • FPGA赋能:车牌识别中图像后处理的硬件加速实践
  • 从单刚体模型到QP求解:MIT Cheetah 3 Convex MPC姿态控制实战拆解
  • Colab连接Google Drive保姆级教程:解决文件管理、上传与路径问题
  • Qwen2.5-7B快速部署:基于Gradio的交互式AI界面搭建教程
  • 网络协议探秘 - NBNS:从数据包到实战的局域网名称服务解析
  • BGE-Large-Zh部署教程:NVIDIA驱动/CUDA/cuDNN版本兼容性清单与验证方法
  • 从拉扎维到Cadence:用直流、交流与瞬态仿真剖析共源级放大器
  • 避坑指南:将NetCDF转回GRIB2格式,为什么用wgrib2比想象中复杂?
  • Harness Engineering:Agent长对话管理优化
  • 一文详解Nano-Banana软萌拆拆屋提示词工程:从输入描述到完美拆解图
  • 手把手教你用frp把家里的NAS或树莓派服务“搬到”公网(CentOS7实战)
  • 从真空到介质:揭秘绝对折射率与相对折射率的物理本质
  • ngrok内网穿透实战:从零到一,打通Windows与Linux本地服务公网访问