Python 开发环境管理

本文主要记录了 Python 开发环境管理的方法,包括 Miniconda 管理 Python 开发环境、Pyenv 和 Pipenv 管理 Python 开发环境等。

Python 开发环境管理分为两部分,一个是 Python 版本管理,一个是虚拟环境管理。

虚拟环境管理存在两种方式,第一种是虚拟环境存放于项目文件夹,第二种情况是虚拟环境存放于系统指定文件夹,这时候不同的项目之间可以复用同一个虚拟环境。

Typical Virtual Environments Flow

Virtual Environments and Packages

使用 Miniconda 管理 Python 开发环境

Miniconda 配置 Tensorflow 的开发环境不需要安装 CUDA 和 cuDNN,只需要安装好驱动就可以了!

1
2
3
4
5
6
7
conda create -n environment_name python=X.X # 用 conda 创建 Python 虚拟环境
conda activate your_env_name # 激活虚拟环境
conda deactivate # 取消激活虚拟环境
conda install -n your_env_name [package]
conda info -e # 查看虚拟环境
conda remove --name your_env_name --all # 删除一个已有的虚拟环境
pip list # 查看安装的包

Miniconda 安装 Tensorflow GPU

  • 安装 Miniconda,配置虚拟环境

  • 安装 TensorFlow

    1
    2
    # Current stable release for CPU and GPU
    pip install tensorflow
  • 验证是否安装成功

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    import tensorflow as tf

    print(tf.__version__)
    GPU_list = tf.config.list_physical_devices('GPU')
    print("Num GPUs Available: ", len(GPU_list))

    sys_details = tf.sysconfig.get_build_info()
    cuda_version = sys_details["cuda_version"]
    print("CUDA version: ", cuda_version)

    cudnn_version = sys_details["cudnn_version"]
    print("cuDNN version: ", cudnn_version)

    cpu_compiler = sys_details["cpu_compiler"]
    print("CPU Compiler: ", cpu_compiler)

    cuda_compute_capabilities = sys_details["cuda_compute_capabilities"]
    print("CUDA Compute Capabilities: ", cuda_compute_capabilities)

Miniconda 安装 PyTorch GPU

  • 安装 Miniconda,配置虚拟环境

  • 安装 Pytorch:在官网复制命令,pip 安装即可。

    1
    pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
  • 验证是否安装成功

    1
    2
    3
    4
    5
    6
    7
    8
    9
    import torch

    print("PyTorch version: ", torch.__version__)
    cuda_avai = torch.cuda.is_available()
    print("Is CUDA available: ", cuda_avai)

    if cuda_avai:
    print ("CUDA version: ", torch.version.cuda)
    print ("cuDNN version: ", torch.backends.cudnn.version ())

使用 Pyenv 和 Pipenv 管理 Python 开发环境

CUDA 和 cuDNN 安装

  • 查看显卡支持的 CUDA 最高版本

    • Powershell 查看
    1
    nvidia-smi # 即可以得到显卡支持的 CUDA 的最高版本
    • NVIDIA 控制面板查看
    1
    帮助(H)-系统信息(I)-组件-NVCUDA64.DLL产品名称即可看到最高支持版本
  • 安装 CUDA

    CUDA(Compute Unified Device Architecture) 下载

    Contents - cuda-installation-guide-microsoft-windows 12.0 documentation

    直接安装即可,安装完会自动添加两个系统变量两个环境变量

    1
    2
    3
    4
    5
    CUDA_PATH C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4
    CUDA_PATH_V11_4 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4

    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\bin
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\libnvvp
  • 安装 cuDNN 并配置环境变量

    cuDNN(CUDA Deep Neural Network library) 下载

    Installation Guide :: NVIDIA Deep Learning cuDNN Documentation

    1
    2
    3
    4
    5
    # 配置如下环境变量
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\bin
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\extras\CUPTI\lib64;
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\include;
    C:\cudnn\bin

    对于 cuDNN 8.7 须下载 zlibwapi.dll

使用 Pyenv 管理 Python 版本

  • 安装 pyenv for Windows

    1
    Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
  • 重启电脑,安装管理 Python

    1
    2
    3
    4
    5
    6
    7
    8
    pyenv --version # 查看 Pyenv 版本
    pyenv install -l
    pyenv install 3.9.13
    pyenv install 3.11.1
    pyenv versions # 查看系统已安装 Python 版本
    pyenv global 3.11.1 # 设置 全局 Python
    pyenv version # 查看系统默认 Python 版本
    python -c "import sys; print(sys.executable)"
  • 设置了 global Python 之后,添加环境变量,使 pipenv.exe 可以运行。

    1
    2
    3
    C:\Users\xxxxx\AppData\Roaming\Python\Python311\Scripts
    # 否则在使用 Pipenv 时会报如下错误:
    # pipenv : 无法将“pipenv”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

使用 Pipenv 管理虚拟环境

  • 安装 Pipenv

    1
    在 Ubuntu 系统中,需要将 pipenv 的路径加入 path `/home/latex/.local/bin`。
  • 使用 Pipenv 创建虚拟环境

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cd project_dir # 进入项目文件夹
    pipenv install # 创建虚拟环境
    pipenv install --python 'C:\Users\xxxxx\.pyenv\pyenv-win\versions\3.9.13\python39.exe' # 创建虚拟环境时指定 Python 版本
    pipenv shell # 启用虚拟环境
    pipenv install package # 安装
    pipenv uninstall package # 卸载
    pipenv graph # 查看按照包的依赖关系
    pipenv --venv # 查看虚拟环境执行文件路径
    exit # 离开虚拟环境
    pipenv --rm # 删除虚拟环境

Pipenv 安装 Pytorch

在原来的命令前,添加 pipenv run 即可。

1
pipenv run pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

Pipenv 安装 Tensorflow-cpu

1
pipenv install tensorflow

Pipenv 安装 Tensorflow-gpu

1
2
pipenv install tensorflow-gpu==2.9.0
tf.config.list_physical_devices('GPU') # 查看GPU

在终端使用 Pipenv 创建的虚拟环境

  • Windows

    1
    2
    3
    4
    5
    6
    7
    8
    # 激活虚拟环境
    cd C:\Users\xxxxx\.virtualenvs\py39_tf29-pMiOFEDH\Scripts\
    cd ~\.virtualenvs\py39_tf29-pMiOFEDH\Scripts\
    activate
    activate.bat

    # 退出虚拟环境
    exit
  • Ubuntu

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 激活虚拟环境
    source /home/xxxxx/.local/share/virtualenvs/py39_torch113-4OsuBQPz/bin/activate
    source ~/.local/share/virtualenvs/py39_torch113-4OsuBQPz/bin/activate

    # 在 .bashrc 里定义了 export pvenvs=/home/xxxxx/.local/share/virtualenvs/
    $pvenvs
    cd py39_XX
    source ./bin/activate
    # 退出虚拟环境
    deactivate
作者

Shangyu ZHAO

发布于

2024-01-02

更新于

2024-04-19

许可协议