【开发环境搭建】2.Anaconda虚拟环境的创建、复用和更新


本文内容对linux系统或windows系统安装的anaconda都适用

1、conda虚拟环境说明

conda虚拟环境包含有许多用户指定安装的特定的conda 安装包,可以随意指定不同项目使用各自的虚拟环境。conda 有一个默认的虚拟环境叫base,该环境包含安装好的python、核心系统软件以及conda所需的依赖包。最好不要在默认环境安装用户需要的特定版本的其它安装包。有特定的需求,要构建新的专用的虚拟环境。

1.1创建环境

#创建一个名字叫tf1的虚拟环境,指定python版本是3.6
conda create --name tf1 python=3.6 
#或
conda create -n tf1 python=3.6

安装是指定版本有助于复现环境,如果不知道用那个版本好,可以先对版本进行搜索。

conda search your_package_name
#比如安装tensrorflow gpu版本
conda search tensorflow-gpu
#可以使用--help来获取更多搜索选项

在这里插入图片描述
也可以在创建环境时指定多个安装包

conda create -n tf1 python=3.6 jupyterlab=1.0 matplotlib=3.1 numpy=1.16
#安装这个包的同时,会把所需要的依赖包也安装上

1.2 环境激活

激活环境会做两件事

  1. 把虚拟环境填加到PATH环境变量中
  2. 运行虚拟环境包含的所有的激活脚本
#激活环境
source  activate tf1
#或者windows
activate tf1

在conda4.6以后无论是linux还是windows,都可以使用一条同样的命令:

conda activate tf1

激活后,可以看来shell中提示符前有变化:
在这里插入图片描述

1.3 deactivate 虚拟环境

conda deactivate 

直接退出激活环境

1.4 指定虚拟环境的安装位置

这样可以在默认安装环境大小不够的时候,指定安装到大的环境:

conda create --prefix ./env python=3.6 #或者-p
#激活
conda activate ./env

在这里插入图片描述
把虚拟环境安装到默认环境~/miniconda3/envs/之外,将不能使用–name(-n)来查找,要用–prefix指定虚拟环境的全部绝对路径来找到环境;
另一个不足是当激活后,显示的名字会是整个绝对路径,特别长会有问题,很不方便

#例如
(/absulute/path/to/env/)tianliang@ubuntu:~$
#可以过改.condarc中的env_prompt来简化,如里.condarc存在就直接有反映,没有就先创建再改变
conda config --set env_prompt '({name})'

在这里插入图片描述
在这里插入图片描述

1.5列出当前的所有环境

conda env list
conda info --env 
conda info -e
#这三个命令的作用是一样的

1.6列出指定环境所有安装包

#激活前
conda list --name tf1 #或-n
#如果是激活前用--prefix创建的环境
conda list --prefix ./env #或-p
#激活后
conda list

1.7删除整个环境

conda remove --name tf1 --all #或-n
#如果用--prefix创建
conda remove --prefix ./env --all #或-p

2 共享虚拟环境

2.1 环境共享

当合作共同一个项目时,每个人的环境可能不同;自己远程使用服务器时,可能和本地的环境不同;所以共享环境很有必要。要做到真正在linux,windows,Mac os共享同一个环境。Conda使用yaml文件来描述环境。
如下将列一个环境的yaml,参照要自己写:

name: tl

dependencies:
  - numpy
  - pandas

这个文件创建一个名字叫tl的虚拟环境,所有包是当前兼容性最好的版本。安装路径在默认位置 ~/miniconda3/envs
如果想要指定一个位置,把名字改成null:

name: null

dependencies:
  - numpy
  - pandas

如果要加版本号:

name: tl

dependencies:
  - numpy=1.16
  - pandas=0.25

创建方法:

conda env create --prefix ./env --file environment.yml

尽量避免使用conda env export命令:
例如我们导出./env的环境:

conda env export --prefix ./env --no-builds --file env.yml

将./env环境的说明导出到文件env.yml,可以看来不只列出我们需要的两个包,还列出了所有的依赖。

在这里插入图片描述
在实际中,export命令导出不说明并不总能在linux,windows,mac os三个平台同时满足,即使用–no-builds去掉了编译号。
以下是一个常见的环境描述文件,我们可以把常用的工作环境写成一个文件,把自己需要的安装包都写进去,这样以后安装将非常方便。

name: tl

channels:
  - defaults
  - conda-forge
  - districtdatalabs

dependencies:
  - python=3.6
  - jupyterlab=1.0
  - pandas=0.25
  - py-xgboost=0.82
  - scikit-learn=0.21
  - scikit-optimize=0.5
  - featuretools=0.9
  - yellowbrick=0.9
  - kaggle=1.5
  - pip=19.1

2.2 环境更新

我们不太可能提前知道开发项目所需要的全部软件的版本号:

  1. 某一个依赖包新版本发布,所以依赖所用版本号升级
  2. 需要自己指定安装某个包来做数据分析
  3. 发现相同功能但是更好用的另一个包,就要删除旧的来安装新的
    有这些情况,需要更新版本,可以把更新的内容改到environment.yml文件中,然后:
conda env update --prefix ./env --file environment.yml --prune #--prune选项使Conda删除环境中不再需要的所有依赖项

2.3 环境克隆

想要做一个一模一样的环境,只是改变名字,或在另一个机器上做同样的环境来复现工作

conda create -n new_name --clone path/or_name

克隆的话指定路径和名字都可以,需要花一段时间,耐心

我个人常用科学计算(深度学习)环境:

做两个环境,一个用来安装tensorflow2.0与pytorch1.3,都是最新版本的tensorflow和pytorch;另一个环境安装早先一直使用的tf1.x版本,我用较老的1.5.
先写个environments_tf2.yml:

channels:
  - defaults
dependencies:
  - python=3.7
  - tensorflow-gpu=2.0.0
  - pandas
  - pillow
  - jupyterlab
  - scikit-learn
  - scikit-image
  - seaborn
  - pydot
  - pip
  - pip:
    - opencv-contrib-python

安装命令:

conda env create -n tf2 --file environments_tf2.yml

1.5版本的tensorflow:

channels:
 - https://repo.anaconda.com/pkgs/free
 - defaults
dependencies:
 - python=3.6
 - tensorflow-gpu=1.5.0
 - pandas
 - pillow
 - jupyterlab
 - scikit-learn
 - scikit-image
 - seaborn
 - pydot
 - pip
 - pip:
   - opencv-contrib-python

安装命令:

conda env create -n tf1 --file environments_tf1.yml

再建一个pytorch环境

channels:
- pytorch
 - https://repo.anaconda.com/pkgs/free
 - defaults
dependencies:
 - python=3.6
 - tensorflow-gpu=1.5.0
 - pandas
 - pillow
 - jupyterlab
 - scikit-learn
 - scikit-image
 - seaborn
 - pytorch
 - torchvision
 - pydot
 - pip
 - pip:
   - opencv-contrib-python

另外,鉴于pytorch下载很慢,所以可以先不安装,等环境安好,进入环境再慢慢安。

### BEV环境搭建教程:自动驾驶或BEV视觉处理开发环境配置 #### 一、开发环境概述 在自动驾驶领域,BEV(Bird's Eye View)Occupancy网络是核心的技术方向之一。为了实现高效的开发工作流,通常需要构建一个稳定且功能强大的开发环境。这种环境不仅支持模型训练与推理,还需要能够处理大规模的数据集并提供良好的可视化能力。 根据已有资料[^1],3D视觉工坊联合自动驾驶资深专家推出了《BEV与Occupancy网络的全景解析与实战》课程,其中涵盖了数据的起源、融合、生成、标定等内容。这表明,一个完善的BEV开发环境应具备以下几个关键要素: - 数据预处理工具链。 - 高效的深度学习框架支持。 - 可视化调试工具。 - 跨平台兼容性可扩展性。 --- #### 二、具体环境搭建步骤说明 以下是基于Linux系统的典型BEV开发环境配置方案: ##### 1. **操作系统选择** 推荐使用Ubuntu作为主要的操作系统版本,因为其社区活跃度高,软件包管理方便,并且大多数机器学习库都提供了官方的支持。例如,TensorFlow、PyTorch等主流框架均对Ubuntu进行了优化测试[^2]。 ##### 2. **安装依赖项** 确保安装必要的依赖项以满足后续操作需求: ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential cmake git wget unzip python3-pip libgl1-mesa-glx ``` ##### 3. **Python虚拟环境设置** 创建独立的Python虚拟环境有助于隔离不同项目的依赖冲突问题。这里采用`conda`来简化流程: ```bash wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh source ~/.bashrc conda create -n bev_env python=3.9 conda activate bev_env ``` ##### 4. **深度学习框架部署** 对于BEV相关研究而言,PyTorch因其灵活性被广泛采纳。通过以下命令完成安装过程: ```bash pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117 ``` 如果目标设备不包含NVIDIA GPU,则去掉CUDA部分即可切换到CPU模式运行。 ##### 5. **开源项目克隆与编译** 许多优秀的开源项目已经实现了基本的功能模块,可以直接借鉴它们的设计理念或者直接复用代码片段加快进度。比如Tesla Autopilot团队公开的部分算法细节提到过利用occupancy network来进行障碍物检测;另外还有来自百度Apollo平台提供的资源也可以作为一个很好的起点[^3]: ```bash git clone https://github.com/ApolloScapeAuto/dataset-api.git cd dataset-api/python/ python setup.py develop ``` ##### 6. **数据准备与标注** 高质量的数据决定了最终效果的好坏程度。因此,在实际动手之前务必先准备好充足的训练样本并且做好相应的标签分类工作。可以考虑借助第三方服务提供商如Labelbox或者其他自定义脚本来加速这一环节的工作量减少时间成本投入。 ##### 7. **实验验证与调优** 最后一步就是不断地尝试新的想法并通过AB Test等方式找到最适合当前场景的最佳参数组合形式从而达到预期性能指标要求为止! --- ### 示例代码展示 下面给出一段简单的PyTorch程序用于加载图片文件并转换成张量格式供神经网络输入层读取: ```python import torch from PIL import Image from torchvision.transforms import ToTensor def load_image(image_path): img = Image.open(image_path).convert('RGB') transform = ToTensor() tensor_img = transform(img) return tensor_img.unsqueeze(0) if __name__ == "__main__": image_tensor = load_image("example.jpg") print(f"Image Tensor Shape: {image_tensor.shape}") ``` --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值