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

venv环境基础指令以及常见问题汇总(持续更新)

常见指令

Python 原生虚拟环境(venv 中,没有直接列出所有虚拟环境的命令(因为 venv 不像 Conda 那样有集中管理机制),但可以通过 文件操作脚本 实现类似功能。以下是常用命令和技巧:


📌 常用 venv 命令

1. 创建虚拟环境

python3.9 -m venv /path/to/env_name  # 指定 Python 版本和路径

示例:

python3.9 -m venv ~/envs/my_env     # 在用户目录下创建
或者
python3.9 -m venv ~/rtdetr_env  # 在用户目录下创建

2. 激活虚拟环境

  • Linux/macOS:
    source /path/to/env_name/bin/activate
    
  • Windows:
    \path\to\env_name\Scripts\activate.bat
    

3. 退出虚拟环境

deactivate

4. 删除虚拟环境

直接删除环境目录即可:

rm -rf /path/to/env_name  # Linux/macOS

5. 查看当前环境的 Python 和包

which python    # 检查当前使用的 Python 路径
pip list        # 查看已安装的包

🔍 如何查看所有虚拟环境?

由于 venv 不会全局注册环境,你需要手动检查存放环境的目录(如 ~/envs/)。以下是几种方法:

方法1:列出特定目录下的所有环境

假设你的虚拟环境都存放在 ~/envs/

ls ~/envs/  # 查看该目录下的所有环境文件夹

输出示例:

my_env1  my_env2  rtdetr_env

方法2:全局搜索 pyvenv.cfg 文件

每个 venv 环境根目录下都有 pyvenv.cfg,可以通过搜索它找到所有环境:

find ~/ -name "pyvenv.cfg" 2>/dev/null  # 搜索用户目录下的所有虚拟环境

输出示例:

/home/user/envs/my_env1/pyvenv.cfg
/home/user/envs/rtdetr_env/pyvenv.cfg

方法3:编写快捷脚本(推荐)

将以下函数添加到 ~/.bashrc~/.zshrc,然后运行 list_venvs

list_venvs() {echo "Existing virtual environments:"find ~/ -name "pyvenv.cfg" 2>/dev/null | sed 's/\/pyvenv.cfg//g'
}

更新配置后生效:

source ~/.bashrc

使用:

list_venvs

🆚 与 Conda 的对比

功能venvConda
列出所有环境需手动搜索目录conda env list
环境存储位置用户自定义路径统一在 ~/anaconda3/envs/
隔离性仅 Python 包Python + 系统依赖

💡 建议

  1. 统一存放环境目录(如 ~/envs/),方便管理。
  2. 如果环境太多,推荐用 脚本自动化(如上面的 list_venvs)。
  3. 在 Docker 中,尽量将虚拟环境放在 持久化存储卷 中,避免容器重启后丢失。

❓ 常见问题

Q1: 能像 Conda 一样跨项目共享虚拟环境吗?

  • ✅ 可以,但需确保所有项目使用相同的 Python 版本和路径。

Q2: 如何复制一个虚拟环境?

  • 直接复制文件夹(不推荐,可能路径冲突),或重新创建环境并导出/导入包:
    pip freeze > requirements.txt  # 导出包列表
    pip install -r requirements.txt  # 在新环境安装
    

Q3: 虚拟环境占用空间太大怎么办?

  • 删除不必要的包:
    pip uninstall package_name
    
  • 或用 pip-autoremove 清理无用依赖。

问题1找不到虚拟环境

在这里插入图片描述

一般是路径输入错误了
根据自己需求更改使用命令

source /root/data1/ultralytics-main/rtdetr_env/bin/activate

或者先cd到当前文件夹中后在使用不带路径的命令,不懂可以再问哈

相关文章:

  • 《AI大模型趣味实战》智能Agent和MCP协议的应用实例:搭建一个能阅读DOC文件并实时显示润色改写过程的Python Flask应用
  • WPF之项目创建
  • Rule.resource作用说明
  • 安装docker,在docker上安装mysql,docker上安装nginx
  • 微信小程序,基于uni-app的轮播图制作,调用文件中图片
  • 加里·基尔代尔:CP/M之父与个人计算时代的先驱
  • 线程池(六):ThreadLocal相关知识详解
  • 移除元素(简单)
  • 游戏引擎学习第246天:将 Worker 上下文移到主线程创建
  • C语言中结构体的字节对齐的应用
  • WPF与C++ 动态库交互
  • 【网络安全】用 Linux 命令行 CLI 日志文件处理指南
  • 在springboot项目中,如何进行excel表格的导入导出功能?
  • 从OpenAI收购实时数据引擎揭示AI数据库进化方向
  • django之优化分页功能(利用参数共存及封装来实现)
  • 【Linux】Centos7 安装 Docker 详细教程
  • 5.3/Q1,GBD数据库最新文章解读
  • MySQL多查询条件下深度分页性能优化技巧及示例总结
  • 【Castle-X机器人】一、模块安装与调试:机器人底盘
  • JavaScript 笔记 --- part6 --- JS进阶 (part1)
  • 四川邻水县县长石国平拟任县(市、区)党委书记
  • 马上评丨发钱奖励结婚,支持婚育就该系统性发力
  • 葛兰西的三位一体:重提并复兴欧洲共产主义的平民圣人
  • 教育强国建设基础教育综合改革试点来了!改什么?怎么改?
  • 欢迎回家!日本和歌山县4只大熊猫将于6月底送返中国
  • 马上评|起名“朱雀玄武敕令”?姓名权别滥用