原文地址:Python : 同时运行多个不同版本:虚拟环境(永久地址,保存网址不迷路 🙃)
问题描述
在开发 Python 应用时,应用程序经常需要运行在不同版本的环境中、安装不同版本的模块,但是这些模块是相互冲突的、无法共存的。比如,某些 Python 项目运行在 django 2.0 中,而某些 Python 项目运行在 django 3.1 中,我们无法在系统中同时安装两个版本的 django 模块。但是,这是常见需求,很多编程语言都需要面对类似的问题,那要怎么办呢?
在 Python 中,我们可以使用虚拟环境(Virtual Environments)来解决该问题。
该笔记将记录:在 Python 中,如何使用虚拟环境(Virtual Environments)来运行多个不同版本(且独立的)Python 环境,以解决多个项目需要不同版本 Python 环境的问题。
解决方案
虚拟环境(Virtual Environments)
在 Python 中,虚拟环境(Virtual Environments)就是该问题的解决方案。在创建虚拟环境后,相关操作将发生在该环境中(这里“相关操作”是指与 Python 环境有关的操作,比如 pip install 将会将模块安装到该虚拟环境中,而不会影响系统环境),使得单个项目的运行环境与其它项目独立起来。
如下步骤,搭建虚拟环境:
# 第一步、安装 virtualenv 模块 pip3 install virtualenv # 第二步、创建虚拟环境 virtualenv --python=python3 "venv-example" # 执行该命令,将创建 ./venv-example 目录 # 第三步、激活虚拟环境 source venv-example/bin/activate # 执行该命令后,我们将进入虚拟环境 # 第四步、执行操作 # 与 Python 环境有关的所有操作将发生在该环境中 # 比如,模块安装将安装到 venv-example 下的对应目录中,并在使用时从中加载模块。 # 退出当前虚拟环境 deactivate
virtualenvwrapper - 管理虚拟环境
使用 virtualenv 存在的一个问题是:为了运行不同应用,我们需要为每个应用单独创建虚拟环境。但是,很多应用需要的虚拟环境是相同的,这些完全应用可以共享虚拟环境。因此,我们可以写个工具,用于创建多个虚拟环境,并且能够在这些虚拟执行快速切换。
所幸,现在已经有了这个工具,使用 virtualenvwrapper 工具,便可解决该问题。在安装该工具后,通过命令 mkvirtualenv 将在“共享目录”中创建虚拟环境,通过命令 workon 快速加载特定虚拟环境,当然还有其他功能。
安装并使用 virtualenvwrapper 工具:
# 第一步、安装 virtualenv 模块 pip3 install virtualenvwrapper # 第二步、创建相关环境变量 export WORKON_HOME=~/Envs # “共享目录”,用于保存要共享的虚拟环境(该目录必须存在) source /usr/local/bin/virtualenvwrapper.sh # 第三步、创建虚拟环境 mkvirtualenv env1 # 将创 $WORKON_HOME/env1 虚拟环境 # 第四步、切换到虚拟环境 workon env1 # 常用虚拟环境操作 lssitepackages # 查看已安装的虚拟环境 lssitepackages -b lssitepackages -l rmvirtualenv # 删除已安装的虚拟环境
相关链接
相关文章
「Python」- 字符串编码与解码
「Python」- 执行 Shell 命令
「Python」- 模块安装
「Python」- HTTP(s)
「Python」- 操作数据库
「Python」- 解析命令行参数
「Python」- 常见XML操作
「Python」- setuptools
参考文献
Python中的虚拟环境的使用
Python 虚拟环境
Python 虚拟环境 virtualenv
virtualenvwrapper 5.0.1.dev2 — virtualenvwrapper 5.0.1.dev2 documentation
virtualenvwrapper - List all virtualenv - Stack Overflow
python 3.x - How do I remove/delete a virtualenv? - Stack Overflow
How to use Python virtualenv - PythonForBeginners.com
本文介绍了如何在Python开发中使用虚拟环境解决不同项目需要不同版本Python环境的问题。通过虚拟环境,可以避免模块冲突,确保各项目独立运行。推荐使用virtualenvwrapper工具进行虚拟环境的管理和切换。
1423

被折叠的 条评论
为什么被折叠?



