Python : 同时运行多个不同版本:虚拟环境

本文介绍了如何在Python开发中使用虚拟环境解决不同项目需要不同版本Python环境的问题。通过虚拟环境,可以避免模块冲突,确保各项目独立运行。推荐使用virtualenvwrapper工具进行虚拟环境的管理和切换。

原文地址: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 - What is the difference between venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenv, etc? - Stack Overflow

相关文章

「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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值