如何在Python中创建和使用虚拟环境

如何在python中创建和使用虚拟环境

作者: HexUp 2021-10-28 19:08:29

云计算

虚拟化 Python中的虚拟环境是一个很有用的功能,可以建立多个互不干扰的空间,每个空间中安装的包都是相互独立的。

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计、成都网站建设、徐汇网络推广、重庆小程序开发公司、徐汇网络营销、徐汇企业策划、徐汇品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供徐汇建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

前两天收到公司邮件,说在我的电脑上发现了anaconda的进程,商业软件需要付费,为了软件合规,让我卸载掉。我就借这个机会写个简单的教程。

Anaconda是一个Python的发行版 ,主要集中在科学计算的用途上,主要有三点优势:

  • 打包了很多科学计算的常用库,比如numpy
  • 开发了conda这个环境管理工具,可以很方便地创建虚拟环境,管理多个Python版本,同时安装conda维护的库
  • 维护了很多科学计算相关的库,而且都是编译好的二进制库,相比于pip的库,有时候更加方便,比如conda会帮你把很多c语言的库编译好直接装,很省事

我上网搜了一下,Anaconda确实变更了他们的授权政策,之前个人版可以用作商业用途,现在不行了。大规模商业公司的用户必须得缴费,小规模的商业用途仍然可以使用个人版(200人以下)。

我估摸着这个公司其实查的也没有那么严,属于睁一只眼闭一只眼,甚至是睁一只眼闭九只眼的状态,但是公司为了完全合规还是让我们卸载掉了这个软件。

(话说为什么不能出钱给我们买?)

其实Anaconda倒不是因为软件收费,他收费的主要对象是conda包的在线服务,也就是你从他们的服务器上下载库的话收费,单单使用conda这个软件并不收费。

然而,我用conda的场景偏偏就需要从他们的服务器上下载包,因为我主要就是管理多个python版本,这个是需要下载二进制文件的。

所以,虽然但是,我还是在不舍中卸载了,然后开始寻找替代方案。

结论是:

  • 如果只需要使用一个版本的Python,但是需要多个虚拟环境,用venv
  • 如果需要用到多个版本的Python和虚拟环境,并且可以方便来回切换,用pyenv

Python中的虚拟环境是一个很有用的功能,可以建立多个互不干扰的空间,每个空间中安装的包都是相互独立的。之所以有这个需求,是因为不同的软件依赖的包的版本是不一样的。

比如,你有一套源代码依赖TensorFlow 1.0和python3.5,然后你又下载了别人的源代码,依赖TensorFlow 2.0和python3.6,如果没有虚拟环境就很麻烦,因为Python不能安装不同版本的库到同一个环境中。但是你可以创建两个不同的Python环境,这个时候就能完美运行两套代码,互不干涉了。

下面稍微写一下conda pyenv venv的基本使用教程。

conda

用conda创建虚拟环境的命令如下

conda create -n new_env python=3.8 numpy

其中-n new_env的意思是指定新环境的名字,这里叫new_env,python=3.8是指定python的版本,numpy是指创建环境的时候你想安装的包,可以写不止一个,也可以不写,等到创建完成了再安装。

创建完成之后,你可以通过conda activate来激活某个环境

conda activate new_env

conda的环境默认都是安装在anaconda的根目录下面,比如我的anaconda安装在/home/user/anaconda下,那么刚刚的环境就在home/user/anaconda/envs/new_env中

conda的优势在于,可以选择python版本,而且不管是不同版本的Python解释器,还是对应的包,他提供都是编译好的二进制文件,下载下来就可以直接用,不用自己编译。用pyenv也能管理多个版本,但是需要自己编译,虽然自己编译更自由,但是也需要更多技巧。

conda的缺点是,依赖计算很慢,所以安装会更久,而且网络对国内用户不太友好。

venv

venv的用法很简单

python3 -m venv my-env

这样就创建完成了一个新虚拟环境,叫my-env,跟conda不同的是,这个my-env是放在你运行这条命令的目录下面。

创建完成之后,还需要激活,运行下面的命令激活

source my-env/bin/activate

venv的局限性在于,只能用当前的Python版本

pyenv

pyenv可以用来管理多个python环境,用起来比conda稍微复杂一点点。

麻烦在哪呢?它需要下载Python的源代码自己编译,而conda都是下载好的二进制,可以直接用。我用pyenv安装python3.6的时候就遇到了编译错误,然后设置了build flag才解决。

安装某个版本:pyenv install 3.6.15

设置默认版本:pyenv global 3.6.15

装完之后就能再配合venv创建虚拟环境了。

pyenv其实自带了一个virtualenv命令,类似于conda,可以在创建虚拟环境的时候指定版本,比如

pyenv virtualenv 3.6.15 new_env

但是需要你先安装对应版本的python。

以上基本上就涵盖了Python创建和使用虚拟环境的几种方法。

当前题目:如何在Python中创建和使用虚拟环境
文章URL:http://www.shufengxianlan.com/qtweb/news19/149919.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联