管理多个虚拟环境有助于维护 Python 项目的可靠性、稳定性和可维护性,特别是在开发多个项目或处理不同依赖关系的情况下。
这使得 Python 更加灵活,能够适应各种项目和需求。可以使用工具如 venv、virtualenv 或 conda
来创建和管理这些虚拟环境。
venv vs conda
venv 和 conda 都是用于创建和管理虚拟环境的工具,但它们有一些区别,包括其用途、安装方式和支持的语言。以下是它们的主要区别:
- 用途:
- venv:是 Python 的
内置虚拟环境管理器
,专门用于 Python 程序的虚拟环境创建和管理。 - conda:是一个跨平台的包管理系统,可以用于创建和管理虚拟环境,但它不仅限于 Python。它还可以管理多种编程语言的环境,包括 Python、R、Julia 等。
- venv:是 Python 的
- 安装方式:
- venv:随 Python 安装而来,无需单独安装。
- conda:需要单独安装 Anaconda 或 Miniconda,这两者是包含 conda 的发行版。安装后,你可以使用 conda 命令来管理虚拟环境和软件包。
- 多语言支持:
- venv:主要用于 Python 虚拟环境的管理,不适用于其他编程语言。
- conda:支持多种编程语言,可以创建虚拟环境,安装各种软件包,以满足多种编程项目的需求。
- 跨平台性:
- venv:适用于所有支持 Python 的平台,包括 Windows、Linux 和 macOS。
- conda:同样支持多种平台,但由于其跨语言特性,也可用于管理非 Python 项目。
- 包管理:
- venv:主要用于创建 Python 虚拟环境,不提供软件包管理功能。你需要使用 pip 等工具来安装和管理 Python 软件包。
- conda:除了虚拟环境管理外,还提供了强大的包管理功能。你可以使用 conda 命令安装、更新和管理各种软件包,而不仅仅是 Python 软件包。
venv 使用
venv 可用于创建和管理独立的 Python 环境,以隔离不同项目的依赖关系。以下是如何使用它的步骤:
#1.初始化空的项目:py_venv_test
py_venv_test % ls
#2. 创建myenv1
py_venv_test % python -m venv myenv1
#3.查看myevnv1目录结构
py_venv_test % tree -L 2
.
├── bin
│ ├── Activate.ps1
│ ├── activate
│ ├── activate.csh
│ ├── activate.fish
│ ├── normalizer
│ ├── pip
│ ├── pip3
│ ├── pip3.9
│ ├── python -> python3
│ ├── python3 -> /Library/Developer/CommandLineTools/usr/bin/python3
│ └── python3.9 -> python3
├── include
├── lib
│ └── python3.9
│ └── site-packages
└── pyvenv.cfg
#4. activate
py_venv_test % source myenv1/bin/activate
#5. 安装第三方包
(myenv1) py_venv_test % pip install bs4
(myenv1) py_venv_test % pip install lxml
(myenv1) py_venv_test % pip install requests pyyaml
#6.输出第三方包到requirements.txt
(myenv1) py_venv_test % pip freeze > requirements.txt
(myenv1) py_venv_test % cat requirements.txt
beautifulsoup4==4.12.2
bs4==0.0.1
certifi==2023.7.22
charset-normalizer==3.3.1
idna==3.4
lxml==4.9.3
PyYAML==6.0.1
requests==2.31.0
soupsieve==2.5
urllib3==2.0.7
#7.退出myenv1
(myenv1) py_venv_test % deactivate
#8 删除myenv1
## 如果你完成了项目或想删除虚拟环境,只需删除虚拟环境目录即可。在终端中运行:
py_venv_test % rm -r myenv
#9 创建myenv2 并 activate
py_venv_test % python -m venv myenv2
py_venv_test % source myenv2/bin/activate
#10. myenv2加载 myenv1的requirements.txt
pip install -r requirements.txt
conda 使用
conda 是一个流行的开源包管理工具,主要用于数据科学和科学计算领域
。它的主要功能包括创建和管理虚拟环境以及安装、更新和管理软件包。
1. 安装 Miniconda 或 Anaconda:
首先,你需要安装 Miniconda 或 Anaconda,这是包含 conda 的发行版。Miniconda 是一个较小的发行版
,而 Anaconda 包含更多的预安装软件包。
- 安装 Miniconda:Miniconda下载页面
- 安装 Anaconda:Anaconda下载页面
2.设置环境变量
py_venv_test % export PATH="/path/to/conda/bin:$PATH"
py_venv_test % source ~/.zshrc
py_venv_test % conda --version
conda 23.9.0
3.使用conda
#1.创建虚拟环境myenv3 & 并安装 Python 3.8
py_venv_test % conda create --name myenv3 python=3.8
The following packages will be downloaded:
package | build
---------------------------|-----------------
pip-23.3 | py38hecd8cb5_0 2.6 MB
python-3.8.18 | h5ee71fb_0 14.4 MB
setuptools-68.0.0 | py38hecd8cb5_0 946 KB
wheel-0.41.2 | py38hecd8cb5_0 109 KB
------------------------------------------------------------
Total: 18.0 MB
#2.激活虚拟环境
py_venv_test % conda activate myenv3
#3. conda 安装软件包
(myenv3) py_venv_test % conda install numpy
#4. 查看虚拟环境中已安装的软件包列表
(myenv3) py_venv_test % conda list
#5. 退出虚拟环境
(myenv3) py_venv_test % conda deactivate
#6. 删除虚拟环境
py_venv_test % conda env remove --name myenv3