目录

开发简介

在本节中,您将

  • 创建一个隔离的软件区域(“虚拟环境”)进行工作。
  • 打开代码编辑器。

开发环境

如果您想处理 Python 软件,则应始终使用虚拟环境,这是一个用于安装软件的区域,与系统上运行的其他程序隔离。用户可能并不总是拥有一个,但开发人员始终应该拥有。

为什么?您不希望冒干扰主系统环境的风险,您希望完全控制库的版本,并且您希望避免让您的主环境“泄漏”,导致您没有注意到何时存在额外的依赖项。虚拟环境是可丢弃的——删除一个并重新开始没什么大不了的——而清理或更新主系统环境则非常困难。

在 Python 中执行此操作的方法有很多(可以说太多了)。任何现代工具都可以,但这里我们推荐科学 Python 社区中流行的两种选项。如果您已经使用其他方法,那很好,请继续使用。

选项 1:使用 pip

最基本的选择是使用 venv,它默认随 Python 提供。

python3 -m venv .venv

这会在本地文件夹中创建一个新的虚拟环境,命名为 .venv。您只需要对每个项目、每台工作机器执行此步骤一次。稍后,如果软件安装出现问题并且您想重新开始,可以简单地删除此目录以删除虚拟环境的所有痕迹。

要激活虚拟环境,请键入

. .venv/bin/activate

您每次打开新的 shell(即终端、命令提示符)以处理项目时都需要执行此步骤。.source 的缩写,它在当前 shell 中运行脚本 activate。这会导致 pippython 在此新环境中工作,与系统范围的包隔离。它会在您的提示符中添加一些文本,以便您不会忘记自己处于环境中。

激活脚本会安装一个函数 deactivate;随时键入该函数以离开环境(或仅关闭 shell)。

可选替代方案

或者,您可以使用 virtualenv 包,它具有与 venv 相同的语法,并且速度稍快。与 venv 不同,它不是内置于 Python 中的;它必须安装为 pip install virtualenv

对于使用自定义 shell 的高级用户

如果您喜欢其他 shell,例如 fish,则有几个 activate 脚本;默认脚本需要类似 bash 的 shell。

快速替代方案

您还可以考虑 uv 包,它是用 Rust 实现的 pipvenv 的更快版本。只需在您通常使用的命令前面加上 uv;只要您使用虚拟环境,它应该几乎相同。您可以使用 --system 来模拟 pip,否则它将使用活动的虚拟环境或 .venv 文件夹。uv venv 将默认为 .venv 文件夹。

这也支持 --exclude-newer DATE,它允许您像在过去某个时间点一样解析。

选项 2:使用 conda

您也可以在 conda 中进行开发。如果以下情况,这是一个特别好的选择

  • 您希望有一种简单的方法来选择特定版本的 Python
  • 您的项目将依赖于难以通过 pip 安装的复杂软件库

创建环境如下所示

conda create -n env_name python=3.12

您可以使用 -n name-p path 通过名称或位置指定环境。以上假设您使用了名称,但如果您选择路径,只需将名称替换为路径即可。

要激活环境

conda activate env_name

要停用,请使用 conda deactivate 或离开 shell。

现代更快的替代方案

您还可以考虑 pixi 包,它是用 Rust 实现的 conda 的更快版本。它已完全重新设计,以便围绕具有 pixi.toml 文件而不是全局环境的项目工作。这是一种新的工作方式(更类似于 Python 中的 pdm/hatch/poetry),但如果您学习它,它非常强大。

选择编辑器

任何纯文本编辑器都可以满足本指南的目的。像记事本或 nano 这样的基础编辑器就可以完成工作。功能更丰富的集成开发环境 (IDE),例如 PyCharmVisual Studio Code 可以提供有用的补充,例如语法高亮、制表符完成等。像 vimemacs 这样的经典文本编辑器可以通过配置实现相同的功能,并且通常在共享的机构系统上很容易获得。

您可以指示 IDE 使用您设置的虚拟环境(pip 或 conda)。设置 IDE 需要额外的时间,但通常会提供(例如智能重命名)有用的工具,并且如果您使用类型提示,在开发时可能会很快收回设置时间。