python 虚拟环境管理

管理多个虚拟环境有助于维护 Python 项目的可靠性、稳定性和可维护性,特别是在开发多个项目或处理不同依赖关系的情况下
这使得 Python 更加灵活,能够适应各种项目和需求。可以使用工具如 venv、virtualenv 或 conda 来创建和管理这些虚拟环境。

venv vs conda

venv 和 conda 都是用于创建和管理虚拟环境的工具,但它们有一些区别,包括其用途、安装方式和支持的语言。以下是它们的主要区别:

  • 用途:
    • venv:是 Python 的内置虚拟环境管理器,专门用于 Python 程序的虚拟环境创建和管理。
    • conda:是一个跨平台的包管理系统,可以用于创建和管理虚拟环境,但它不仅限于 Python。它还可以管理多种编程语言的环境,包括 Python、R、Julia 等。
  • 安装方式:
    • 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 % source 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

你可能感兴趣的:(python,开发语言)