python虚拟环境常见问题的解决(virtualenv与virtualenvwrapper)

1 基础概念

1.1 什么是虚拟环境

我们创建多个python项目,需要不同的python环境。我们需要在项目中安装不同的模块,比如在A项目中我们可能用到NumPy,在B项目中用到request模块。如果在基础环境上安装这么多模块会让基础环境十分冗杂,而且有可能会产生冲突。所以引出虚拟环境的概念,为每个项目创建一个属于它的虚拟环境。

1.2 virtualenv 与 virtualwrapper的作用

1.2.1 virtualenv

virtualenv是一个用于创建虚拟环境的工具。

1.2.2 virtualenvwrapper

wrapper的英文意思是包装,所以virtualenvwrapper就是对virtualwrapper的一个扩展封装。

virtualenvwrapper is a set of extensions to Ian Bicking’s virtualenv tool. <Docs of virtualenvwrapper>

官方文档中给出了简介明了的解释。virtualenvwrapper提供了一个虚拟环境管理的功能,我们使用virtualenv的时候可能把虚拟环境安装在各个地方,不方便管理,切换。这个工具解决了这个问题。

1.3 我是否两者都需要

如果你喜欢把虚拟环境放在本项目下面,我觉得不需要virtualenvwrapper, virtualenv就足够了。

如果你喜欢吧各个虚拟环境放在一个文件夹(保持整洁方便管理),可以使用virtualenvwrapper,很方便管理,切换。

2 如何使用

2.1 virtualenv的使用

2.1.1 十分推荐官方文档

你可以在看完本文后,了解基本的安装、操作后看文档、或者直接去看。官方文档详细易懂!

我在下面的文章中,主要提一些文档不会详细说明,但是大家都会遇到的一些问题,同时这也是一个完整详细的安装使用步骤。
virtualenv官方文档

2.1.2 安装

mac自带python2环境,我们通常使用python3进行开发。常见的Linux发行版也是如此。所以跟官方文档不同的是,这里使用pip3进行安装

pip3 install virtualenv
2.1.3 创建虚拟环境

在Mac、Linux中,如果你的默认python解释器仍是Python2版本,请使用-p命令来进行指定python版本。创建虚拟环境的格式为:

virtualenv -p python版本 虚拟环境位置

例如

virtualenv -p python3 ~/Code/Env

当然虚拟环境的位置也可以使用相对路径,这样就很方便的在当前文件夹进行创建。

我日常会使用VS Code进行开发,喜欢在当前项目下创建我的虚拟环境。
在这里插入图片描述
点击图中的位置,在VS Code中打开命令行终端。因为之前设置过VS Code中的解释器是python3, 而且在项目中打开终端,自动定位到当前文件夹,所以直接创建虚拟环境就好了。

virtualenv .env
2.1.4 继承之前的基础环境的模块

如果你使用 --system-site-packages 的话,可以继承之前的基础环境的模块。

virtualenv --system-site-packages ~/Code/Env
2.1.5 使用虚拟环境
2.1.5.1 在Mac、Linux下

使用:

source /path/to/ENV/bin/activate

退出:

deactivate
2.1.5.1 在Windows下

使用:命令行输入

\path\to\env\Scripts\activate

退出:

deactivate

2.2 virtualenvwrapper

2.2.1 十分推荐官方文档

本文提供了官方文档没有提及的一些常见的细节问题。

2.2.2 安装

如果你使用python3。请使用:

pip3 install virtualenvwrapper
2.2.3 使用前的一些问题

如果你的电脑仍然默认解释器为python2(windows通常不会有这个问题),linux、mac用户可以这样操作。否则会出现以下问题:

/usr/bin/python: No module named virtualenvwrapper virtualenvwrapper.sh

我们应当这样操作:

export WORKON_HOME=~/Envs  # 设置虚拟环境的文件夹
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 # 设置解释器
2.2.4 使用

创建虚拟环境:

mkvirtualenv env1

查看有哪些虚拟环境:

lssitepackages

切换、进入另一个虚拟环境

workon env2 # 前提是有这个虚拟环境
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值