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

从零开始:在Ubuntu22.04上用Anaconda创建Python3.8虚拟环境并安装Pytorch1.12

在Ubuntu 22.04上构建Python 3.8与PyTorch 1.12的精准开发环境

当我们需要复现某个经典论文的模型或参与特定版本的开源项目时,环境配置往往成为第一道门槛。上周团队新来的实习生就遇到了这样的困境:GitHub上的一个目标检测项目明确要求Python 3.8+PyTorch 1.12的组合,而他的Ubuntu系统已经安装了Python 3.10。这种版本错配导致的兼容性问题,正是虚拟环境技术要解决的核心痛点。

1. 基础环境准备

在开始之前,建议先更新系统基础组件。打开终端执行:

sudo apt update && sudo apt upgrade -y

这将确保所有系统包处于最新状态。对于深度学习开发,NVIDIA驱动是另一个需要提前确认的关键要素:

nvidia-smi

如果未显示GPU信息,需要先安装官方驱动。Ubuntu 22.04默认使用nouveau驱动,我们需要先禁用它们:

sudo bash -c "echo 'blacklist nouveau' >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf" sudo bash -c "echo 'options nouveau modeset=0' >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf" sudo update-initramfs -u

重启后,可以通过官方PPA安装驱动:

sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt install nvidia-driver-535

2. Anaconda的科学计算生态部署

不同于直接安装Python,Anaconda提供了完整的科学计算工具链。我们推荐下载最新的2023.03版本:

wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh

下载完成后,验证文件完整性是个好习惯:

sha256sum Anaconda3-2023.03-1-Linux-x86_64.sh

对比官网提供的校验值后,执行安装:

bash Anaconda3-2023.03-1-Linux-x86_64.sh

安装过程中有几个关键选择需要注意:

  • 按Enter阅读许可协议
  • 输入yes同意条款
  • 确认安装路径(默认为~/anaconda3
  • 最后选择yes初始化Anaconda3

安装完成后,需要重新加载bash配置:

source ~/.bashrc

验证安装成功的标志是能够识别conda命令。我们可以创建一个测试环境:

conda create -n test_env python=3.8 -y conda activate test_env python --version # 应显示Python 3.8.x conda deactivate conda env remove -n test_env

3. 精准控制Python虚拟环境

针对PyTorch 1.12的需求,我们创建专用环境:

conda create -n pt1.12 python=3.8 -y conda activate pt1.12

环境创建后,建议立即安装基础科学计算包:

conda install numpy pandas matplotlib scipy scikit-learn jupyter -y

对于环境管理,有几个实用技巧值得掌握:

  • 环境克隆:当需要基于现有环境做微小调整时

    conda create --name pt1.12_clone --clone pt1.12
  • 环境导出:方便团队共享环境配置

    conda env export > environment.yml
  • 精确安装:指定次要版本号

    conda install numpy=1.21

4. PyTorch 1.12的定制化安装

PyTorch的版本兼容性矩阵相当复杂。对于1.12版本,官方提供了多种构建配置:

组件推荐版本备注
CUDA11.3或11.611.8需要源码编译
cuDNN8.2.x需与CUDA版本匹配
TorchVision0.13.0必须与PyTorch版本对应
TorchAudio0.12.0可选组件

执行以下命令安装指定版本:

conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

注意:如果使用NVIDIA 30系显卡,建议使用CUDA 11.6以获得更好兼容性:

conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge

安装完成后,验证GPU是否可用:

import torch print(torch.__version__) # 应输出1.12.1 print(torch.cuda.is_available()) # 应返回True print(torch.cuda.get_device_name(0)) # 显示GPU型号

5. 开发环境优化配置

为了让环境更高效,我们可以进行一些优化设置。首先是启用CUDA加速的数学库:

conda install -c conda-forge cudatoolkit-dev

然后设置Jupyter内核:

python -m ipykernel install --user --name pt1.12 --display-name "PyTorch 1.12 (Py3.8)"

对于常驻开发环境,建议配置以下别名到~/.bashrc

alias ptenv='conda activate pt1.12 && export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/'

最后,我们可以创建一个简单的测试脚本verify.py

import torch import torchvision def check_environment(): print(f"PyTorch版本: {torch.__version__}") print(f"TorchVision版本: {torchvision.__version__}") print(f"CUDA可用: {torch.cuda.is_available()}") if torch.cuda.is_available(): print(f"当前设备: {torch.cuda.current_device()}") print(f"设备名称: {torch.cuda.get_device_name(0)}") print(f"CUDA架构: {torch.cuda.get_arch_list()}") # 简单张量运算测试 x = torch.rand(5, 3) print(f"\n随机矩阵:\n{x}") print(f"矩阵乘法结果:\n{x @ x.T}") if __name__ == "__main__": check_environment()

执行这个脚本应该能看到完整的版本信息和GPU状态输出。在实际项目中遇到CUDA内存不足时,可以尝试在代码开头添加:

torch.backends.cudnn.benchmark = True torch.backends.cuda.matmul.allow_tf32 = True
http://www.jsqmd.com/news/522302/

相关文章:

  • Python实战:用朴素贝叶斯分类器预测西瓜好坏(附完整代码)
  • 墨语灵犀深度评测:33语种互译精度 vs 传统引擎,Hunyuan-MT美学翻译实测
  • vLLM-v0.11.0新手避坑指南:从镜像选择到服务验证全流程
  • 不用GPT-4也能玩转RAG:手把手教你用LightRAG+Ollama搭建本地知识库
  • Python heapq实战:如何用__lt__方法实现自定义优先级队列(附完整代码)
  • TensorBoard可视化实战:从安装到解读F1曲线,新手必看指南
  • Windows Server上OpenVPN 2.4.8双因子认证实战:账号密码+证书,附一键脚本
  • 2026年3月山东电线电缆厂家最新推荐:电力电缆、控制电缆、阻燃耐火电缆、低烟无卤电缆、光伏电缆、特种线缆厂家选择指南 - 海棠依旧大
  • WebStorm 2019激活码失效?最新2023年合法激活方法全攻略
  • 【ESP32-S3】7.3 I2S实战——从SD卡读取并实时播放WAV音频
  • RK3588平台RGB Sensor调试全攻略:从硬件检查到ISP调参的避坑指南
  • 解决Android 13存储权限问题:READ_MEDIA_IMAGES等新权限的完整配置流程
  • 排水管选购必看:2026年实力厂家口碑分析,排水管实力厂家精选优质品牌助力工程采购 - 品牌推荐师
  • EVA-01部署教程:本地化安装,保障设计院数据安全与隐私
  • 从谐波分析看SVPWM优势:我的三相逆变器仿真THD为什么能低至0.35%?
  • MicroSD卡SPI模式实战:从引脚定义到PCB布局的完整设计指南
  • 基于PLC的智能抢答器系统设计与实现
  • 分析2026年江苏专业的泡沫雕塑制作队伍,哪家值得合作 - 工业品牌热点
  • 大模型显存优化实战:从Qwen2.5-7B-Instruct看KV Cache、梯度检查点与量化技术
  • 语音芯片WTW-28P在智能家居中的按键控制应用电路设计
  • 聊聊2026年上海泡沫雕塑设计公司选哪家好,给你实用建议 - 工业推荐榜
  • 2026年制造精良、售后好的开箱机厂家推荐,专业厂家排名揭晓 - 工业品牌热点
  • 解锁论文写作新境界:书匠策AI的数据分析魔法
  • 3.23
  • 手把手教你用Visual Studio搭建RFID门禁系统(含低频卡读写实战)
  • ESP8266 Web OTA升级库:响应式固件空中更新实战
  • 保姆级教程:用Kimi K2-0905+Claude Code搭建自动化前端工作流(含React案例)
  • 2026年开箱机品牌供应商费用多少,哪家更划算 - 工业推荐榜
  • 2026年青甘大环线宝藏景点排名,平山湖大峡谷靠谱吗 - myqiye
  • 保姆级教程:在Gazebo 11中为你的SLAM机器人添加会走路的‘行人’障碍物