APP下载

如何通过虚拟环境有效管理Python第三方库

2021-08-23郭伟强

广东教育·职教版 2021年7期
关键词:虚拟环境工具模块

郭伟强

Python语法简洁,零基础都可以学;python数据结构丰富,它提供了列表、元组、字典以及Numpy下的数组、Pandas等;Python是一款免费的编程语言,它提供源码,可以根据自己的需要改写代码从而实现自己想要的结果;Python是一种多范式语言,它支持多种编程风格,这使得它的通用性极强,现在使用Python是IT行业的一种趋势。但是,作为初学者,我们还是会遇到一些问题,本文将详细讲解并分析出现问题时我们该如何解决。

一、配置虚拟环境

1.虚拟环境

虚拟环境是一个虚拟化、从电脑独立出来的环境。每个Python虚拟环境都有一个独立的Python解释器、一套独立的Python标准库,还有一套独立的工具和第三方库。虚拟环境虽小,但什么都能做。虚拟环境之间相互独立,互不干扰,当我们进入某个虚拟环境,下载并安装某个库,相应的库也只会对这个虚拟环境起作用。

2.虚拟环境的意义

在实际项目开发中,我们通常会根据自己的需求下载不同的第三方库,但是每个项目使用的第三方库可能不一样,或使用的版本不一样,这就需要不断更新或卸载相应的库。

问题一:项目A需要某个模块的1.0版本,项目B需要这个模块的2.0版本。如果没有安装虚拟环境,使用这两个项目时,就需要来回卸载安装,这样很容易给项目带来错误。

问题二:以前开发的项目需要在Python2.7环境下运行,而现在的项目需在Python3环境中运行,如果不使用虚拟环境,这两个项目有可能无法同时使用,使用Python3则之前的项目無法运行,反之则新项目运行有麻烦。如果分别为这两个项目配置不同的虚拟环境,就可以很好地解决这个问题。

问题三:项目1需要pymysql模块、requests模块,而项目2需要numpy模块与pandas模块。

问题四:当所有的项目都使用同一个Python运行环境时,也会产生第三方库的版本冲突(见图1)。

二、确定虚拟环境的路径

1.Python运行环境(对应于Python的安装目录)

安装目录下有Python解释器、Python标准库、工具(pip、easy-install等),在site-packages目录中,安装的所有第三方库及其版本,例如pygame(1.9.6)、requests(2.22.0)、pymysql(0.81)、numpy(1.18.1)等。

2.虚拟环境的Python运行环境(根据Python的安装目录虚拟出来)

假设有3个项目,都要用到mysql数据库,但是他们的版本不一样,这时候我们就可以在各个项目的目录下创建各自的虚拟环境,每个虚拟环境下都有单独的Python解释器、Python标准库、工具(pip、easy-install等)。因此,我们只需要根据项目需求安装不同版本的pymysql就可以实现。

3.确定当前Python解释器对应的Python安装目录

在windows系统下,当前Python解释器的完整路径是where python的执行结果中的第一行,对应的Python安装目录是完整路径中\python.exe前面的部分。

三、安装virtualenv

1.virtualenv

(1)virtual的意思是“虚拟的”。

(2)env是“environment”的缩写,意思是“环境”。

(3)virtualenv即“虚拟环境”。

2.通过工具pip下载安装

在windows下,打开命令提示符窗口,输入命令pip install virtualenv就可以安装。Python使用pip方法安装第三方库时,默认情况下,需要从https://pypi.org/资源库中下载,由于安装源在国外,可能下载速度慢,甚至无法下载,这时,我们可以通过国内源安装相应的库,有以下两种方式。

(1)临时使用国内源安装。

pip install virtualenv -i http://pypi.douban.com/simple/

pip install -i http://pypi.douban.com/simple/ virtualenv

如果提示不可信,则将网站设置为受信任。

pip install virtualenv -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com virtualenv

#此参数“--trusted-host”表示信任,如果上一个提示不受信任,就使用这个。

(2)永久使用国内源安装。

①新建pip配置文件夹,直接在user用户目录中创建一个名为pip的文件夹(即%HOMEPATH%\pip)。

②接着在pip文件夹中创建一个名为pip的文本文件(后缀名由“.txt”改为“ini”),这里以豆瓣网为例,文件内容如下:

[global]

index-url = https:// pypi.douban.com/simple

[install]

trusted-host = https:// pypi.douban.com

# trusted-host 此参数是为避免麻烦,否则使用时可能会提示不受信任。

(3)安装好后,输入virtualenv--version命令测试安装是否成功。

(4)常用的国内源有:清华大学,https://pypi.tuna.tsinghua.edu.cn/simple;阿里云,http://mirrors.aliyun.com/pypi/simple/;豆瓣,http://pypi.douban.com/simple/。

四、使用virtualenv

1.创建虚拟环境

(1)在创建虚拟环境之前,首先要确定好被创建的虚拟环境所在的目录,然后在命令提示符窗口或终端窗口中切换到该目录。

(2)创建虚拟环境的语法是virtualenv 虚拟环境的名称。如果存在多个Python解释器,可以选择指定一个Python解释器(比如“virtualenv –p /uar/bin/python3.7 MyVirEnv,-p后为指定的Python解释器),没有指定则由系统默认的解释器来搭建。另外,如果在创建虚拟环境时继承系统第三方库,可以使用命令virtualenv --system-site-packages MyVirEnv,参数--system-site-packages 指定创建虚拟环境时继承系统第三方库。

虚拟环境建好之后,会在项目目录下面自动创建一个名为MyVirEnv的虚拟环境目录。它是一个独立的Python运行环境,包含Python可执行文件以及pip库,可以直接安装第三方库。不过已经安装到系统Python环境中的第三方库不会被复制过来,这样,我们就可以得到一个不带任何第三方库的“干净”的Python运行环境。

2.激活虚拟环境

首先要切换到虚拟环境MyVirEnv目录下的Scripts,然后执行activate,最后用pip list 查看当前虚拟环境下所安装的第三方库。

3.应用虚拟环境

激活虚拟环境后,当前的Python解释器就是该虚拟环境中的Python解释器;当前的pip、pip3和easy_install等工具就是该虚拟环境中的相应工具;当前的第三方库就是该虚拟环境中的第三方库。

4.删除虚拟环境

在某个虚拟环境中完成操作后,如果想退出该虚拟环境,就需要反激活该虚拟环境。操作方法:当前目录可以是任意一个目录,执行deactivate命令,当前路径的最前面的小括号以及小括号中虚拟环境的名称会自动消失。另外,当前的Python解释器就是Python的安装目录中的Python解释器,当前的pip、pip3和easy_install等工具就是Python的安装目录中的相应工具,当前的第三方库就是Python的安装目录中的第三方库。具体结构如图2所示。

五、不同系统之间的项目转移

问题一:在电脑A上的虚拟环境中正常运行的某个Python项目,如何保证它在电脑B上也可以正常运行呢?

问题二:如果两台电脑的操作系统不一样,那么电脑A中的虚拟环境在电脑B中是无法使用的,如果项目使用了虚拟环境中的很多第三方库,就會导致虚拟环境的体积较大,不方便拷贝。

解决方法:在电脑A上,对于项目使用的虚拟环境中的所有第三方库,形成一个名称和版本的列表,存放在某个文件中;把电脑A上的项目和文件拷贝到电脑B上;在电脑B上新建一个虚拟环境,并根据文件把项目使用的第三方库都下载和安装到虚拟环境中。

我们可以使用pip freeze>requirements.txt将依赖包的信息进行保存,使用这条命令后,目录下会多出一个requirements.txt文件。当我们将项目目录转移至目的系统后,重建并激活虚拟环境(Python版本需一致),在项目目录下执行命令pip install -r requirements.txt即可获得与之前开发时相同的依赖包和相同的环境。

六、在PyCharm中使用virtualenv

创建一个纯Python项目,选中单选按钮New environment using,默认是通过Virtualenv创建虚拟环境。在PyCharm中使用virtualenv比较方便,不需要手动激活虚拟环境,关联虚拟环境后可以直接在虚拟环境中进行操作。

责任编辑 陈春阳

猜你喜欢

虚拟环境工具模块
Module 2 Highlights of My Senior Year
Module 4 Music Born in America
波比的工具
波比的工具
准备工具:步骤:
“巧用”工具
动画广告设计中虚拟环境的构建方法与运用
虚拟现实技术概论
必修模块相关知识过关训练
医学细胞生物学实验课教学现状与改革策略