跳转至

Python 环境管理

约 3346 个字 40 行代码 预计阅读时间 12 分钟

Python 简介

Python 是一种广泛使用的高级编程语言,因其简洁易读的语法和强大的库支持而受到开发者的喜爱,近年来随着 AI 和数据科学的兴起,Python 的使用越来越普及。 Python 支持多种编程范式,包括面向对象、函数式和命令式编程,并且拥有丰富的标准库和第三方库,使得开发者可以快速构建各种应用程序。因其适用于包括数据分析、机器学习、 Web 开发、自动化脚本等在内的多种应用场景,我们需要掌握基础的 Python 知识。

在本节内容中,我们将会向您介绍 Python 环境的搭建与管理,以便您能够在自己的计算机上进行 Python 编程和开发。而在后续的内容中,我们还将介绍 Python 的基本语法以及 Pytorch 库的使用。

Python 环境搭建

我们提供的标准开发环境中已经包含了 Python 环境和 Conda,因此您可以运行 source ~/scripts/conda.sh 激活 Conda 环境进行 Python 编程和开发。如果您希望在自己的计算机上搭建 Python 环境,可以参考以下内容。

在开始 Python 编程之前,您需要在您的计算机上安装 Python 环境。一般来说,我们可以直接安装 Python 的官方版本,也可以使用 Anaconda 等发行版来管理 Python 环境和依赖库。

安装 Python 的官方版本

以下是安装 Python 官方版本的步骤:

  1. 下载 Python:访问 Python 官网下载适合您操作系统的 Python 版本。建议下载最新的稳定版本。
  2. 安装 Python:运行下载的安装程序,按照提示完成安装。在安装过程中,请确保勾选“Add Python to PATH”选项,这样可以在命令行中直接使用 python 命令。
  3. 验证安装:安装完成后,在命令行中输入以下命令来验证 Python 是否安装成功并添加到环境变量中:

    python --version
    

    如果安装成功,您将看到 Python 的版本信息。

  4. 安装 pip:Python 3.4 及以上版本默认包含 pip ,如果您的版本不包含,可以手动安装。验证 pip 是否安装成功:

    pip --version
    

MacOS 系统与 Linux 系统已预装 Python

事实上 MacOS 系统与 Linux 系统默认安装了 python ,可以在命令行中使用 python3 命令运行。但是预装的 Python 是一些系统工具的依赖,通常不建议使用这个 Python 作为您的开发环境。我们推荐您使用 conda 来创建 Python 开发环境。

Windows 上快速安装 Python

新版本的 Windows 上有 winget 可以用于快速安装常用工具链。运行 winget install Python 即可自动完成 Python 的安装。但是如果有多 Python 环境管理的需求,我们仍然建议您使用 conda 来创建 Python 的开发环境。

使用 Miniconda 安装 Python

Anaconda 是一个流行的 Python 发行版,包含了 Python 解释器和大量的科学计算和数据分析库。而 Miniconda 是 Anaconda 的轻量级版本,适合需要更小安装包的用户。这里以 Miniconda 为例介绍安装步骤:

  1. 下载 Miniconda:访问 Miniconda 官网的 Miniconda 下载界面下载适合您操作系统的 Miniconda 安装包。
  2. 安装 Miniconda:运行下载的安装程序,按照提示完成安装。在安装过程中,您可以选择将 Miniconda 添加到系统的环境变量中,这样可以在命令行中直接使用 conda 命令。
  3. 验证安装:安装完成后,在命令行中输入以下命令来验证 Miniconda 是否安装成功:
conda --version

如果安装成功,您将看到 conda 的版本信息。

选择合适的 IDE

Python 只是一种编程语言,您还需要一个合适的集成开发环境(IDE)来编写和运行 Python 代码。我们推荐使用以下两种 IDE:

  • VSCode + Python 插件
  • Pycharm

如果在搭建 Python 环境的过程中遇到问题,可以参考以下教程:

练习

  1. 在您的计算机上安装 Python 环境,并验证安装是否成功。
  2. 使用 IDE 通过 SSH 连接到标准开发环境,并尝试编写和运行一个简单的 Python 程序,例如打印“Hello, World!”,并在终端中运行该程序。

Python 环境管理

Python 环境管理是指在不同的项目中使用不同的 Python 版本和依赖库,以避免版本冲突和依赖问题。常用的 Python 环境管理工具有 venvvirtualenvconda

使用 venv 进行环境管理

venv 是 Python 自带的虚拟环境管理工具,可以创建独立的 Python 环境,通常配合 pip 使用来管理项目的依赖库。以下是使用 venv 进行环境管理的常用指令:

  • 创建虚拟环境:在命令行中输入以下命令来创建一个新的虚拟环境:

    python -m venv myenv
    

    这将创建一个名为 myenv 的虚拟环境。

  • 激活虚拟环境

    • Windows 用户:

      myenv/Scripts/activate
      
    • macOS 和 Linux 用户:

      source myenv/bin/activate
      
  • 安装依赖库:在虚拟环境中,您可以使用 pip 安装所需的依赖库,例如:

    pip install numpy pandas
    
  • 退出虚拟环境:完成开发后,您可以通过以下命令退出虚拟环境:

    deactivate
    
  • 删除虚拟环境:如果您不再需要某个虚拟环境,可以直接删除该目录。

使用 virtualenv 进行环境管理

virtualenv 是一个第三方库,可以创建独立的 Python 环境,使用前需要用 pip 安装它。virtualenv 的使用与 venv 类似,这里不多赘述,感兴趣的读者可以参考 virtualenv 官方文档

使用 conda 进行环境管理

conda 是 Anaconda 或 Miniconda 发行版自带的包管理和环境管理工具,适用于数据科学和机器学习领域。以下是使用 conda 进行环境管理的常用指令:

  • 创建虚拟环境:在命令行中输入以下命令来创建一个新的虚拟环境:

    conda create --name myenv python=3.12
    

    这将创建一个名为 myenv 的虚拟环境,并安装 Python 3.12 版本。

  • 激活虚拟环境:在命令行中输入以下命令来激活虚拟环境:

    conda activate myenv
    
  • 安装依赖库:在虚拟环境中,您可以使用 conda 安装所需的依赖库,例如:

    conda install numpy pandas
    
  • 退出虚拟环境:完成开发后,您可以通过以下命令退出虚拟环境:

    conda deactivate
    
  • 列出所有虚拟环境:在命令行中输入以下命令来列出所有已创建的虚拟环境:

    conda env list
    
  • 删除虚拟环境:如果您不再需要某个虚拟环境,可以使用以下命令删除它:

    conda remove --name myenv --all
    
  • 导出环境:在命令行中输入以下命令来生成当前环境中已安装的所有包及其版本信息的文件,以便于在其他环境中复现相同的依赖:

    conda env export > environment.yml
    
  • 根据依赖文件创建环境:在命令行中输入以下命令来根据 environment.yml 文件创建一个新的 conda 环境:

    conda env create -f environment.yml
    

离线 conda 环境迁移

使用上述导出环境并根据依赖文件创建环境的的方式需要新 conda 环境安装的机器上能够连接互联网下载依赖文件。如果您需要将现有的 conda 环境迁移到无互联网连接的机器上,可以使用以下命令导出 conda 环境到单个文件中:

conda pack -n your_env_name -o env_packages.tar.gz

将此文件上传到需要安装此环境的机器上。并运行以下命令来安装此环境:

tar -xzf env_packages.tar.gz -C new_env_path

我们推荐 new_env_path 设置为该机器原有的 conda 环境的虚拟环境管理路径。例如对于标准开发环境来说应该是 /home/xflops/apps/miniconda3/envs/<your_env_name>,这样之后你可以方便的使用该机器的 conda 管理此环境。你也可以设置为一个自选的 new_env_path 。这样你将需要运行下述命令来激活此环境:

source new_env_path/bin/activate  # Linux/macOS
.\new_env_path\Scripts\activate   # Windows

该迁移方式直接将依赖项的代码与二进制进行迁移,因此需保证迁移前后的系统一致处理器架构一致,例如将 Linux 上的环境按上述方法迁移到 Windows 将无法使用。

练习

使用 venvconda 工具,在实践中亲自体会一遍创建、激活、安装依赖、退出和删除虚拟环境的过程。

Python 包管理

Python 包管理是指管理 Python 项目中的依赖库和包。常用的 Python 包管理工具有 pipconda。实际上,Python 的环境管理与包管理是紧密相关的,这里将简要介绍这两种工具的使用。

使用 pip 管理包

pip 是 Python 自带的包管理工具,可以安装、升级和卸载 Python 包。以下是一些常用的 pip 命令:

  • 安装包:在命令行中输入以下命令来安装一个 Python 包:

    pip install package_name
    
    • 安装特定版本的包:如果您需要安装特定版本的包,可以在包名后指定版本号或最低版本号,例如:

      pip install package_name==1.0.0
      pip install package_name>=1.0.0
      
  • 升级包:在命令行中输入以下命令来升级一个已安装的 Python 包:

    pip install --upgrade package_name
    
    • 由于 pip 本身也是一个 Python 包,因此您可以使用同样的命令来升级 pip 自身,这在某些情况下是必要的。
  • 卸载包:在命令行中输入以下命令来卸载一个已安装的 Python 包:

    pip uninstall package_name
    
  • 列出已安装的包:在命令行中输入以下命令来列出当前环境中已安装的所有 Python 包:

    pip list
    
  • 查看包信息:在命令行中输入以下命令来查看某个已安装包的详细信息:

    pip show package_name
    
  • 搜索包:在命令行中输入以下命令来搜索 Python 包:

    pip search package_name
    
  • 生成依赖文件:在命令行中输入以下命令来生成当前环境中已安装的所有包及其版本信息的文件,以便于在其他环境中复现相同的依赖:

    pip freeze > requirements.txt
    
  • 安装依赖文件中的包:在命令行中输入以下命令来安装 requirements.txt 文件中列出的所有包:

    pip install -r requirements.txt
    
  • 配置镜像源:如果在使用 pip 时遇到网络问题,可以尝试更换镜像源。常用的镜像源包括清华大学、阿里云等,具体操作可以参考清华 pip 镜像源配置。 在命令行输入以下命令来配置清华大学的镜像源:

    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    

    或者临时使用清华镜像源安装包:

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
    

需要注意的是,上述操作均针对的是当前所处于的 Python 环境。如果您在虚拟环境中操作,所有的包管理操作都将只影响该虚拟环境中的 Python 包;相反,如果您在全局环境中操作,则会影响全局的 Python 包。

使用 conda 管理包

conda 是 Anaconda 和 Miniconda 自带的包管理工具,可以安装、升级和卸载 Python 包以及其他语言的包。以下是一些常用的 conda 命令:

  • 安装包:在命令行中输入以下命令来安装一个或多个 Python 包:

    conda install package_name1 package_name2
    
    • 安装特定版本的包:如果您需要安装特定版本的包,可以在包名后指定版本号,例如:

      conda install package_name=1.0.0
      
  • 升级包:在命令行中输入以下命令来升级一个已安装的 Python 包:

    conda update package_name
    
    • 升级所有包:如果您想要升级当前环境中的所有包,可以使用以下命令:

      conda update --all
      
  • 卸载包:在命令行中输入以下命令来卸载一个已安装的 Python 包:

    conda remove package_name
    
  • 搜索包:在命令行中输入以下命令来搜索 Python 包:

    conda search package_name
    
  • 列出已安装的包:在命令行中输入以下命令来列出当前环境中已安装的所有包:

    conda list
    
  • 配置镜像源:如果在使用 conda 时遇到网络问题,可以尝试更换镜像源。常用的镜像源包括清华大学、阿里云等,具体操作可以参考清华 conda 镜像源配置。 在命令行输入以下命令来配置清华大学的镜像源:

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    conda config --set show_channel_urls yes
    

    配置后可以通过下面的指令验证配置是否成功:

    conda config --show channels
    

如果在使用 conda 时遇到问题,可以参考 Conda 官方文档

练习

  1. 使用 pipconda 工具,在实践中亲自体会一遍安装、升级、卸载包的过程。
  2. 配置镜像源,对比使用镜像源和不使用镜像源安装同一个包的安装速度差异。
  3. 在你的计算机上,一共存在几个版本的 Python?如果存在多个,请思考它们之间的关系。
  4. 对比你的计算机上的 Python 全局环境和虚拟环境中同一个包(如 numpy)的版本,他们是否存在差异?如果存在差异,请思考原因。
  5. 小明创建并激活了一个名为 myenv 的虚拟环境,并在其中安装了 numpypandas。然而,小明代码中的 import numpy 却在他使用的 IDE VSCode 中报错,提示找不到该模块,请思考可能的原因以及解决方法。并思考:如果小明在这个虚拟环境中运行该代码,是否会报错(假设不存在其他错误)?