携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
虚拟环境简介
作为使用 Python 的第一步,配置工作环境是一个很好的习惯。这有助于隔离操作系统解释器和环境,并正确定义将使用的依赖项。使用虚拟环境通常可以避免产生混乱的情况:
- 在同一台计算机上处理多个项目时,它们可能有不同的依赖关系,在某些时候会发生冲突。例如,同一个模块的两个版本不能安装在同一个环境中
- 处理将在另一台计算机上使用的项目时,例如,在个人笔记本电脑上开发一些最终将在远程服务器中运行的代码,有时代码可以在个人笔记本电脑上运行,但不能在生产服务器上运行。尽管导致这种问题的原因可能有很多,但多数情况下是由于环境问题导致的,一个好的做法是配置一个可复制移植的环境,从而减少程序依赖项的不确定性。
在 Python 中,使用 venv 模块设置本地虚拟环境的很容易避免这种混乱性。在虚拟环境中安装的任何依赖项都不会与机器上安装的 Python 解释器共享,从而创建一个隔离的环境。在 Python 3 中,venv 工具作为标准库的一部分安装。
虚拟环境创建与激活
要创建新的虚拟环境,需要在shell命令行中执行以下操作。
- 首先,使用以下命令转到包含项目的主目录:
$ cd work_directory
- 键入以下命令,创建一个名为
new_venv的子目录,其中包含虚拟环境。
$ python3 -m venv new_venv
包含虚拟环境的目录可以位于任何地方,当将其创建在与工作项目相同的根目录下较为方便。如果想要避免在运行 ls 或其他命令时显示它,可以在虚拟环境名前添加一个点:
$ python3 -m venv .new_venv
- 在激活虚拟环境之前,可以检查默认的
pip版本,这取决于操作系统和所安装的Python版本;并检查 `Python 解释器引用的命令位置:
$ pip --version
pip 22.1.2 from /home/Program/python3.7/lib/python3.7/site-packages/pip (python 3.7)
$ which python3
/usr/bin/python3.7
- 至此,虚拟环境已准备就绪。接下来,如果操作系统为
Linux,可以通过运行以下命令激活虚拟环境:
$ source new_venv/bin/activate
如果操作系统为 Windows,可以通过在 PowerShell 中运行以下命令激活虚拟环境:
$ Set-ExecutionPolicy RemoteSigned
输入 A 后继续执行以下命令
$ Get-ExecutionPolicy
$ .\my_venv\Scripts\activate
可以查看 Python 文档中的 venv 文档获取更详细信息。
激活后,可以看到 shell 提示符将显示 (my_venv),表明虚拟环境处于激活状态。虚拟环境中使用的 Python 解释器是虚拟环境中的解释器,而不是操作系统中的解释器。检查虚拟环境中的位置:
(my_venv) $ which python
/.../my_venvvenv/bin/python
(my_venv) $ which pip
/.../my_venv/bin/pip
- 可以使用以下命令升级
pip的版本,然后检查版本:
(my_venv) $ pip install --upgrade pip
...
Successfully installed pip-22.2.1
(my_venv) $ pip --version
pip 22.2.1 from /.../my_venv/lib/python3.7/site-packages/pip (python 3.7)
另一种方法是运行 python -m ensurepip -U,可以确保安装 pip。
- 最后,使用
deactivate命令退出虚拟环境,并运行pip查看版本,可以看到已经返回之前的环境:
(my_venv) $ deactivate
$ which python
/.../my_venvvenv/bin/python
$ which pip
/.../my_venv/bin/pip