【Python】浅谈Python虚拟环境virtualenv

虚拟环境简介

虚拟环境提供一个独立于全局python环境(库library和解释器interpreter)的程序运行空间。这样一来,可以有效避免python程序之间的相互影响。

比如:程序 A 需要使用某个包的 1.0 版本,而程序 B 需要使用这个包的 2.0 版本,如果两个程序都使用全局python环境的话,当我们需要运行这两个程序,就需要来回卸载和安装对应版本的包了,会造成很多不必要的麻烦,有时候甚至产生一些莫名其妙的错误。

又比如: 程序 A 运行在python 2.7 之上,而程序 B 运行在python 3 之上,如果不使用虚拟环境,则两个程序将无法同时运行。这时,使用虚拟环境分别为这两个程序配置不同的运行环境,这样两个项目就可以互不干扰地同时运行了。

我们可以为每一个python项目或者程序创建一个虚拟环境,这样所安装的包和进行的各项配置都只对这个程序生效,而不会影响全局python环境或者其他项目的虚拟环境。

虚拟环境的安装和使用

安装

以Ubuntu 和 Python 3为例,如下安装:

sudo pip3 install virtualenv

下文中的pip都指pip3。

创建虚拟环境

为一个项目创建虚拟环境:

# 项目所在目录
cd the_project_fir
# venv是虚拟环境目录名,可自定义
virtualenv venv

执行上述命令,将会在项目文件夹中创建一个名为venv的文件夹,其包含了Python可执行文件,以及一份pip库的拷贝,这样就可以在虚拟环境中安装其他的包了。
需要注意的是,虚拟环境的目录名可以缺省,若缺省则文件直接放在当前项目目录。

指定解释器

为创建好的虚拟环境指定一个解释器:

# -p 参数指定python解释器路径
virtualenv -p /usr/bin/python3 venv

启用虚拟环境

需要使用这个虚拟环境之前,需要将其激活:

source venv/bin/activate

此时,使用pip安装任何的包都将放置在 venv文件夹中,而不是全局python环境。

停用虚拟环境

使用下面的命令来停用当前的虚拟环境:

. venv/bin/deactivate

此时将回到系统默认的python环境(全局python环境)。

删除虚拟环境

直接删除对应的文件夹即可,使用rm -rf venv

virtualenvwrapper

我们可以看到,使用virtualenv有些不方便。当配置的虚拟环境数量众多,需要启动或停止特定的环境时,都将进入到相应的目录运行这些启动或者停止脚本。过一段时间,你真的能记住哪个虚拟环境在哪个目录吗?

安装

virtualenvwrapper为我们提供了一种解决方案,将所有虚拟环境存放在同一个地方,方便对虚拟环境进行集中管理。

安装virtualenvwrapper,需要先安装virtualenv:

# Linux
sudo pip install virtualenvwrapper
# Windows
sudo pip install virtualenvwrapper-win

安装完成之后,配置环境变量,这里配置在用户环境变量中,即在~/.bashrc中写入:

# virtualenvwrapper存放虚拟环境的目录
export WORKON_HOME=~/Envs
# virtualenvwrapper会安装到python的bin目录下,所以为python安装目录下bin/virtualenvwrapper.sh
source /usr/local/bin/virtualenvwrapper.sh

使环境变量生效

source ~/.bashrc

简单使用

创建虚拟环境,使用mkvirtualenv命令:

# 创建
mkvirtualenv venv
# 通过--python指定解释器
mkvirtualenv --python=/usr/bin/python3 venv

运行上述命令之后,将在WORKON_HOME指定的目录创建名为venv的虚拟环境目录,并指定相应的解释器。

使用workon查看当前虚拟环境目录:

$ workon
venv
venv1

切换到指定的虚拟环境:workon venv21
退出虚拟环境:deactivate
删除虚拟环境:rmvirtualenv venv1

Anaconda中创建不同环境

如果你的python是通过Anaconda来进行安装的,那么可以使用Anaconda自带的工具来创建不同的环境。

比如,笔者装的Anaconda3(python3.7),但是安装tensorflow时发现没有对应的版本,tensorflow目前最高仅支持python3.6。这个时候怎么办呢?卸载python3.7转而安装python3.6吗?当然不用!

创建新环境

我们可以使用Anaconda来创建python3.6的环境:

# 使用conda命令创建python3.6环境
conda create -n py36 python=3.6 anaconda

其中,

  • py36是所创建环境的名称,可以自定义;
  • anaconda 是新环境中也安装Anaconda带有的包;
  • python=3.6指定新环境使用的python版本
  • 创建的新环境默认目录为:~/.conda/envs/

激活环境

激活新安装的环境,使用:

# windows
activate py36
# Linux/macOS
source activate py36

退出环境

当退出当前环境时,使用:

# windows
deactivate
# Linux/macOS
source deactivate

查看当前环境

一般来说,当前使用的环境将通过在命令行的最前端通过()或者[]显示,如:

(py36) $

如果没有显示,可以使用:

conda info --envs

当前使用的环境将在所有环境中使用*标记。

管理

查看创建的环境列表:

conda info --envs
# OR
conda env list

删除环境,使用(慎重):

conda remove -n py36 --all

查看某个环境中安装的包:

conda list -n py36
# 已处于激活状态
conda list

使用pip为创建的环境安装包:

# 为环境安装pip
conda install -n py36 pip
# 激活环境
source activate py36
# 安装包
pip <pip_subcommand>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python virtualenv是一个用来创建和管理Python虚拟环境的工具。虚拟环境是一个独立的Python运行环境,可以用来隔离不同项目的依赖关系和包版本。通过使用虚拟环境,可以在同一台主机上同时运行多个项目,每个项目都有自己独立的Python解释器和安装的软件包。 要使用virtualenv创建虚拟环境,首先需要安装virtualenv工具。可以使用pip命令安装,例如在命令行中输入"pip install virtualenv"。安装完成后,可以使用以下命令创建虚拟环境virtualenv [虚拟环境名称] 例如,运行"virtualenv myenv"将创建一个名为myenv的虚拟环境。 要激活虚拟环境,首先需要进入虚拟环境所在的目录,在命令行中输入"activate"。这将激活虚拟环境,并将命令行提示符修改为虚拟环境名称。要退出虚拟环境,可以在命令行中输入"deactivate"。 使用虚拟环境可以避免不同项目之间的包冲突,并且可以方便地管理每个项目的依赖关系。通过为每个项目创建独立的虚拟环境,可以确保项目之间的独立性和隔离性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [通过pyenv和virtualenv搭建python开发环境](https://blog.csdn.net/hao_zhang_shrek/article/details/100054170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python虚拟环境virtualenv】](https://blog.csdn.net/qq_35844043/article/details/81842060)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值