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

来源 :广东教育(职教版) | 被引量 : 0次 | 上传用户:FreshLearn
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  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
其他文献
提高学生的保育技能水平,是中职学前教育专业的根本任务。目前,保育课程教学模式存在一定的弊端,不利于学生保育技能水平的提高。笔者结合中职学前教育专业的教学实践,浅谈对保育课程教学模式改革的一些探索和思考。  一、保育课程教学模式改革的原因  1.基于当前教育改革的趋势要求  近年来,学前教育一直是深化教育改革的重点对象之一。党中央、国务院颁布的《关于学前教育深化改革规范发展的若干意见》明确指出:“要
实践教学与传统理论教学属于教学过程中的两种不同教学方式。实践教学是培养实操能力强的技能型人才的重要教学方式,是真正体现职业教育培养“知识型、技能型、创新型的劳动者大军”的突破点和有效抓手。中职会计专业实践教学要求我们以企业岗位需求为导向,以职业能力培养为目标,突出学生实践操作能力的训练。需要从课程设计、实训基地建设、师资培训、课程评价等多方面、全维度形成完善的实训教学的模式。  本文通过回顾中职会
习近平总书记在《求是》杂志发表重要文章,指出“思政课是落实立德树人根本任务的关键课程”,对全面推进思政教育和思政课建设提出了基本遵循。要求清晰定位课程思政特色,精准育人,结合学校的专业学科特色,充分利用现代信息技术手段,进一步拓展课程思政的方法和途径,在专业课程的实践中进行思政教育,能够引导学生弘扬劳动精神,提高学生综合素质,从而帮助学生更好地适应社会。围绕“德技一体人才培养模式”,坚持“德技并重
在当前信息化迅速发展的背景下,微课作为新型的教学模式运用于各科的课堂教学中,大大提高了课堂教学质量。作为年轻的一代,笔者在教学实践中,也一直在探讨如何运用微课为中职会计高效课堂服务,并取得较好的教学效果。  一、传统中职会计专业教学存在的问题  (一)中职学生分析  部分当代中职生的学习特点可以用两个字概括:厌学。原因有三点:第一,学生文化基础差。学生大多数是中考场上的失败者,学习基础较差,学习能
近日,共青团中央、人力资源和社会保障部联合印发通知,正式启动第十七届“振兴杯”全国青年职业技能大赛。  本届大赛旨在贯彻落实习近平总书记关于青年工作的重要思想、对技能人才工作的系列重要指示和关于职业教育工作的重要指示精神,在青年中弘扬劳模精神、劳动精神、工匠精神,为职业院校学生提升职业技能水平和创新创效能力搭建平台、提供帮助。大赛为国家级一类大赛,系2021年全国行业职业技能竞赛之一,以“跟党走实
一、问题的提出  (一)时代背景  信息技术的应用是当今世界经济和社会发展的重要因素,以网络技术和云端服务为核心的信息技术已成为拓展人类想象的创新工具。为了适应这一发展趋势,我国已确定在学校中普及信息技术教育,同时加强信息技术与课程的深度融合。  信息技术拓宽了我们获取信息的渠道和范围,极大地丰富了信息资源,为个性化、自助及交互式的学习提供了舞台,使生动、活泼、主动的学习得以进行,极大地提高了学生
随着时代的发展,幼儿周围的事物也在更新变化。机器人作为多种学科交互的技术成果,代表着高新技术出现在幼儿身边,成为幼儿熟悉的事物。将机器人引进校园,成为幼儿探索的教学工具,形成幼儿园机器人教育,也逐渐成为教育行业探索的新领域。  一、幼儿园开展机器人教育的必要性  近年来,中国已经不断营造并形成了勇于创新的良好科学文化氛围,取得了一定的科学成就。然而,我们也应该清醒地看到,我们与世界科技强国的要求相