活学活用虚拟环境,Python编程更高效

介绍4种在Python中使用虚拟环境的方法。

微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩

本文将涵盖以下主题:什么是python中的虚拟环境?为什么需要虚拟环境?在Python中设置虚拟环境的4种不同方法。本文将使用以下方法来创建虚拟环境:

  • 1.Pipenv

  • 2.Venv

  • 3.Virtualenv

  • 4.Conda

1.什么是虚拟环境?

虚拟环境是一个隔离的Python环境,允许用户安装和管理不同的依赖关系。它将一个项目的依赖性与另一个项目分开,这里的依赖性是指任何模块、库或包。每个项目都有一个特定版本的依赖关系。

Python虚拟环境包含了一个特定版本的Python和一个包含相关项目的依赖性的文件夹。这就是一个简单的Python虚拟环境的例子,接下来进入为什么的部分。在这一部分,将讨论为什么需要一个虚拟环境来使用Python进行项目工作。

2.为什么需要虚拟环境?

虚拟环境以一种良好的方式规范了Python项目,通过以下例子来了解一下情况。举个例子,小明是一个初学者,他开始使用Python做项目。他做了一个名为“A”的项目,使用两个Python库来开发这个项目。第一个库是pandas 1.2版,第二个库是Flask 2.1版。一段时间后,他开始创建另一个名为“B”的项目。他需要与项目A中使用的相同的库。

他更新了库的版本,以便在项目“B”中使用这些库,现在pandas 1.2版和Flask 2.1版被更新为pandas 1.3版和Flask 2.6版。有一天,他决定向他的朋友展示他很酷的项目,当时项目“B”运行得很顺利,但项目“A”却出现了错误,原因是小明在项目“A”中使用的库的版本发生了变化,因为他在开发项目“B”时更新了库。

小明在开发项目“B”时犯了一个错误,即没有使用虚拟环境。这可能发生在任何像小明一样的初学者身上。一个库的版本在一定时间后更新。开发人员不断改变库的代码,并试图使它们没有错误和功能完善。所以这就是应该在项目中使用虚拟环境的原因。下面是一些其他的原因,使虚拟环境成为必要的工具。

  • 依赖性管理:它有助于使不同的Python项目的依赖性分离和组织。

  • 版本冲突:它也有助于避免版本冲突。不同的项目可能需要同一个包的不同版本,通过使用虚拟环境可以轻松地处理这些情况。

  • 易于处理库:由于虚拟环境与全局的Python环境隔离。虚拟环境使得删除或创建库很容易,而不影响其他库。

3.在Python中创建虚拟环境的不同方法

现在到了本文的核心部分,在这里将学习如何创建虚拟环境并在项目中使用它。

⚡Pipenv⚡

Pipenv是一个用于为项目创建一个虚拟环境的工具,它默认会创建pip文件。它使用一个特殊的功能,我们称之为锁功能。它创建了一个叫做Pipfile-lock的文件。它列出了项目运行所需的所有软件包和它们的依赖性。这个文件作为环境的快照。

使用pipenv建立一个虚拟环境。

要使用pipenv并为项目创建虚拟环境,首先,创建一个存储项目的文件夹,然后开始安装库。例子是在demo文件夹中,所以将在同一位置安装库。

例1

要使用pipenv,首先必须在系统中安装pipenv,所以Linux和Windows用户都使用以下步骤来安装它。

  • 1.Linux用户可以使用终端。

  • 2.Windows用户可以使用PowerShell。要运行PowerShell,请进入“开始”菜单并输入PowerShell,需要使用pip来安装Python中的包,所以要确保安装了pip。可以通过在PowerShell中运行“pip - version”来检查。如果已经在系统中安装了pip,则使用下面的命令来安装pipenv

pip install pipenv

要检查pipenv是否正确安装,请使用以下命令。如果你得到这样的输出,说明pipenv已经安装在你的系统中。

# 用命令检查pip版本。
pipenv --version

pipenv - version代码的输出:

使用pipenv安装库。

下面以在虚拟环境中安装一个请求库为例,所以下面写的命令将在虚拟环境中安装请求库。可以使用项目需要的任何软件包。

# 使用命令`pipenv`而不是`pip`
pipenv install requests

执行上述命令后,可以看到下面的快照中的输出。

命令“pipenv install requests”的输出。

要检查哪些库存在于虚拟环境中,可以使用以下命令。

# 适用于wnidows用户
pip freeze 
# 或
python -m pip freeze

要使用pipenv从虚拟环境中卸载库,可以在终端或PowerShell中输入以下命令。

pipenv uninstall <any package name>

要卸载特定的软件包,用想从虚拟环境中卸载的软件包的名称替换“<any package name>”。

有一个功能可以帮助生成一个文本文件,该文本文件将包含所有安装在虚拟环境中的库,该文本文件包含所有存在于虚拟环境中的库的名称和版本。

命令生成包含虚拟环境中所有库的列表的文本文件。

# 创建 requirment.txt
pipenv lock --requirements > requirements.txt

上面的命令将生成一个文本requirements.txt。运行该命令后,可以在虚拟环境所在的文件夹中找到它。

也可以在这个文本文件的帮助下安装库。这些是通过刚才讨论的过程产生的文件。这些文本文件包含库的名称和它们的版本。只需将此文件保存在项目文件夹所在的确切位置即可。

命令安装使用文本文件的库。

在下面的例子中,文本文件的名称是“requirements.txt”。

pipenv install --requirements requirements.txt

requirements.txt的例子如下图所示。

requirements.txt

⚡venv⚡

venv支持创建轻量级的虚拟环境。虚拟环境是在现有的Python安装基础上创建的。正如我们之前通过使用pip和终端Power Shell来安装虚拟环境。这个方法对Linux和Windows用户都一样。

第一步是选择创建虚拟环境的文件夹,并打开该文件夹,可以用以下命令完成。

# 创建一个目录
mkdir <name_of_your_directory>

用项目名称或任何想要的名称替换name_of _your_directory

从一个目录转移到另一个目录。

# “cd”,即改变目录。cd <name of your directory>

使用venv创建虚拟环境。

python -m venv my_first_env

注意:如果得到一个错误,用“python3”替换“python”,这里的3是指python版本。将“my_first_env”替换为想给虚拟环境起的名字。

一旦创建了虚拟环境,必须激活它。

适用于Linux用户:

激活虚拟环境。

#适用于Linux用户source <my_first_env>/bin/activate

<my_first_env>替换为虚拟环境的名称。

激活虚拟环境后,可以使用以下命令检查它是否正在运行,命令可能因操作系统不同而不同。

用于检查Linux中的虚拟环境的命令。

echo $VIRTUAL_ENV

一旦确认虚拟环境正在运行,就可以用pip安装软件包,例如pip install <your_package_name>

命令安装虚拟环境中的软件包。

# 安装pandas软件包
pip install pandas # 也可以指定版本。
pip install pandas=1.2

命令检查列表中哪些软件包已经安装在虚拟环境中。

# 它将输出所有的软件包名称
pip list# 它将输出一个特定的软件包,如果在虚拟环境中存在。
pip show <package_name>

适用于Windows用户:

PowerShell激活虚拟环境的命令。

# 适用于windows用户<my_first_env>\Scripts\activate

输入以下命令来检查虚拟环境是否正在运行。

# 检查虚拟环境是否正在运行。
$env:VIRTUAL_ENV

命令在虚拟环境中安装软件包的powerhell

#安装pandas软件包
pip install pandas #也可以指定版本。
pip install pandas=1.2

适用于Windows和Linux用户:

使用以下命令检查哪些库存在于虚拟环境中。

# 适用于Linux和Windows用户。
pip list# 适用于Linux和Windows用户。
pip show <package_name>

一旦完成了虚拟环境的工作,可以使用以下命令停用现有的虚拟环境。

deactivate

pipenv一样,venv也可以创建文本文件并使用现有的文件在虚拟环境中安装软件包。

用命令生成文本文件。文件名是requirements.txt

# 创建requirment.txt
pip freeze > requirements.txt

命令在环境中使用文本文件(在例子中是requirements.txt)来安装库。

pip install -r requirment.txt

以上已经完成了使用venv创建虚拟环境的所有基本命令。

⚡Virtualenv⚡

Virtualenv也用于创建一个虚拟环境,它是venv模块下的标准库的一个子集,要使用它需要较高版本的python 3.3或以上。它创建的环境有安装目录,不与其他虚拟环境共享库。Linux和windows的命令如下。

适用于Linux用户:

通过运行命令安装virtualenv

pip install virtualenv

导航到想创建虚拟环境的目录。

使用virtualenv创建一个虚拟环境,使用以下命令:

virtualenv <env_name>

用虚拟环境名称替换<env_name>

激活虚拟环境:

# 用虚拟环境名称替换`<env_name>`
source <env_name>/bin/activate

要检查虚拟环境是否在运行,请使用以下命令:

source activate

停用虚拟环境:

deactivate

适用于Windows用户:

通过运行命令安装virtualenv

pip install virtualenv

导航到想创建虚拟环境的目录。

使用virtualenv创建一个虚拟环境,使用以下命令:

virtualenv <env_name>

用虚拟环境名称替换<env_name>

激活虚拟环境:

# 用虚拟环境名称替换`<env_name>`
<env_name>\Scripts\activate.bat

检查虚拟环境是否正在运行,使用以下命令:

activate

停用虚拟环境:

deactivate

如果虚拟环境已经被激活,将会在括号里看到它的名字。请看下面的例子。

(venv) C:users/username/<project_name>见下面的例子。

abhishek是指虚拟环境名称,demo代表你项目的文件夹名称。

⚡Conda⚡

Conda是一个开源的软件包和环境管理系统,它主要用于数据科学和科学计算。它可以有效地为每个项目创建一个隔离的环境,避免冲突。它同时支持Python和非python的软件包。该命令在Linux和windows下都是一样的,有些可能有所不同。

下面将解释使用conda的命令。

1)要创建一个具有全局版本的虚拟环境。

2)使用特定的Python版本创建一个虚拟环境。下面给出了两者的命令。

--create uing python global version that is currently installed in your system.conda create --name <env_name>--create using specific version of pythonconda create --name <env_name> python=3.2

这里的"<env_name>"是指虚拟环境的名称。

使用conda命令激活虚拟环境。

#activate virtual environment using conda.
conda activate <env_name>

这里的<env_name>是指虚拟环境的名称。

在虚拟环境中使用conda安装软件包。

conda install package_name

将“package_name”替换为项目所需的软件包名称。

使用conda从虚拟环境中卸载软件包。

conda uninstall package_name

package_name替换为软件包名称,请看上面代码块中的一个例子以获得更好的理解。

检查虚拟环境中安装了哪些python包:

conda list 

上面写的命令将显示所有安装在环境中的软件包以及它们的版本。

查看在特定环境中安装的软件包,请使用以下命令:

conda list --name env_name

用虚拟环境名称替换env_name

用命令在conda中生成packages.txt文件,packages.txtrequirement.txt类似:

conda list --export > packages.txt

下面的命令将有助于安装packages.txt文件中定义的库。

conda install --file packages.txt

结语

以上是本文介绍的4种可以用于为项目创建虚拟环境的方法。可以根据具体情况使用任何一种方法来创建虚拟环境。

推荐书单

《Python从入门到精通(微课精编版)》

《Python从入门到精通(微课精编版)》使用通俗易懂的语言、丰富的案例,详细介绍了Python语言的编程知识和应用技巧。全书共24章,内容包括Python开发环境、变量和数据类型、表达式、程序结构、序列、字典和集合、字符串、正则表达式、函数、类、模块、异常处理和程序调试、进程和线程、文件操作、数据库操作、图形界面编程、网络编程、Web编程、网络爬虫、数据处理等,还详细介绍了多个综合实战项目。其中,第24章为扩展项目在线开发,是一章纯线上内容。全书结构完整,知识点与示例相结合,并配有案例实战,可操作性强,示例源代码大都给出详细注释,读者可轻松学习,快速上手。本书采用O2O教学模式,线下与线上协同,以纸质内容为基础,同时拓展更多超值的线上内容,读者使用手机微信扫一扫即可快速阅读,拓展知识,开阔视野,获取超额实战体验。

《Python从入门到精通(微课精编版)(软件开发视频大讲堂)》(前沿科技)【摘要 书评 试读】- 京东图书京东JD.COM图书频道为您提供《Python从入门到精通(微课精编版)(软件开发视频大讲堂)》在线选购,本书作者:,出版社:清华大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!icon-default.png?t=N5K3https://item.jd.com/13524355.html

精彩回顾

《深入浅出,一步步用GPT打造你的聊天机器人》

《用好这9个技巧,让你的Python代码“飞”起来》

《领略数学之美,使用Python创建分形图案》

《使用Python进行自动化录屏》

《轻松完成异步任务,一文搞懂Python Celery》

《ChatGPT插件使用攻略,解锁互联网新体验》

微信搜索关注《Python学研大本营》,加入读者群

访问【IT今日热榜】,发现每日技术热点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/64034.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用好这两个方法,解决Python中的线程同步问题

了解互斥锁和连接&#xff0c;实现Python中安全有效的多线程。 微信搜索关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 同步的重要性是什么&#xff1f; 假设有一个共享的家庭银行账户&#xff0c;余额为50美元&#xff0c;属于你和你父亲。 爸爸挣…

了解Python编码风格,让你的代码更好看

和其他编程语言不同&#xff0c;Python有一套独特的编码风格&#xff0c;掌握Python的编码风格对于编写优美的代码至关重要。 微信搜索关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 本文是一篇快速了解Python编码风格的指南&#xff0c;了解Python…

国家电网可视化平台完工交付给客户!

国家电网可视化平台完工交付给客户&#xff0c;助力电网信息化&#xff01; 转载于:https://www.cnblogs.com/shuzikeji/p/7844358.html

2019年南方电网和国家电网考纲对比(通信类)

最近在准备关于国家电网和南方电网的校园招聘笔试&#xff0c;整理了如上内容&#xff0c;仅供参考&#xff0c;小结如下&#xff1a; 南方电网&#xff1a; 批次&#xff1a;南方电网校园招聘考试一般每年只有一批&#xff0c;比重&#xff1a;比较注重面试环节&#xff0c;面…

国家电网 计算机 《信息新技术》 整理

信息新技术概论 分布式处理基础分布式数据库&#xff08;DDB,Distributed Database)︰分布式文件系统(DFS&#xff0c;Distributed File System)区块链(Blockchain)&#xff1a; 物联网基础基本概念 大数据基础人工智能基础神经网络(NNsNeural Networks)机器学习 典型硬件技术基…

【NLP】千呼万唤始出来——GPT-3终于开源!

文 | 小戏编 | 小轶 GPT3终于开源&#xff01;不过&#xff0c;不是官方开的&#xff08;别打我 Eleuther AI推出的名为GPT-Neo的开源项目&#xff0c;于今晨4点于twitter正式宣布&#xff1a;已经开源了复现版GPT-3的模型参数&#xff08;1.3B和2.7B级别&#xff09;&#xff…

属于自己的贾维斯

属于自己的贾维斯之Python学习 人生第一次写博客&#xff0c;想记录下自己的学习过程&#xff0c;以便以后复习简单(毕竟自己的博客总想知道有没有人来看,就可以顺便过来复习了)&#xff0c;因为用笔的记录感觉都没怎么去看,所以就想用这种方法来记录。因为本人比较懒再加上精神…

七夕送女友什么礼物有意义、送女朋友实用的七夕礼物清单

在即将到来的中国传统情人节——七夕节当中&#xff0c;怎样送女朋友实用又用心的礼物呢&#xff1f;想必有不少男生朋友们不知道怎么选择吧&#xff01;要知道合适的礼物可以在改善生活质量的同时也为彼此的感情带来惊喜&#xff0c;今天就为大家带来送女朋友实用的5个礼物推荐…

七夕节送女朋友什么礼物、能让女生感动到哭的礼物推荐

七夕作为我国的传统情人节马上就要到来了。在这一天也是恋爱中人相互向对方表达爱意的好时机&#xff0c;精心为对方准备一份七夕礼物也是情理之中的事&#xff0c;但是咱们很多男性小伙伴在面对市面上令人眼花缭乱礼物的时候&#xff0c;在挑选问题上却是不知从何下手了。别担…

程序员如何哄女朋友开心的秘籍,定制给女朋友一个应用(生日礼物)

这算是我写的安卓比较完整的一个应用了吧&#xff0c;不过其实也还不怎么完整&#xff0c;还有好多功能没有加进去&#xff0c;但是由于昨天是女朋友的生日&#xff0c;所以就送给他了&#xff0c;这也是我学习安卓半个月来的第一个应用了“音乐播放器”&#xff01; 制作&…

女朋友过生日送什么礼物好?

观察她喜欢什么 平日里陪她逛街购物时&#xff0c;你留意到她很喜欢一件衣服或是饰品之类的&#xff0c;她可能因为各种原因&#xff0c;没买。你记在心里面&#xff0c;生日前买下了&#xff0c;作为生日礼物送个她&#xff0c;她会非常的欢喜。 如果离过生日还有很长一段时间…

如何做一个网页送给女朋友做生日礼物!感动到哭!

如何做一个网页送给女朋友做生日礼物 本文里面涉及到python&#xff0c;HTML &#xff0c;css,JavaScript的知识&#xff0c;是基于python的flask框架做的一个小型网站&#xff0c;里面可以实现跳转功能&#xff0c;怎么配置flask的环境变量&#xff0c;去官方文档看就好了&am…

情人节送女朋友什么礼物最好?五大首选礼物排行榜单!

一年一度的情人节又要到了&#xff0c;各位男生有没有因为不知道给女朋友们挑选什么礼物而心慌慌&#xff1f;情人节礼物绝对能反映出你对女朋友平时喜好的了解程度&#xff0c;选对了情人节礼物&#xff0c;可以让你们的感情更加甜蜜。今天就来说说有哪几款非常适合送女孩子的…

如何做一个网页送给女朋友做生日礼物!这应该是最好的礼物了!

如何做一个网页送给女朋友做生日礼物 本文里面涉及到python&#xff0c;HTML &#xff0c;css,JavaScript的知识&#xff0c;是基于python的flask框架做的一个小型网站&#xff0c;里面可以实现跳转功能&#xff0c;怎么配置flask的环境变量&#xff0c;去官方文档看就好了&am…

这是我送给兄弟女朋友的六一礼物

这是我送给兄弟女朋友的六一礼物 1. 写在前面2. 前期准备2.1. 需要安装的库2.2. 安装库的命令2.3. 库的介绍 3. 代码展示4. 运行结果展示5. 总结 1. 写在前面 事情是这样的&#xff0c;最近不是六一儿童节嘛&#xff0c;好像我身边充斥着大量大龄儿童。我兄弟就是木讷&#xf…

给女友的网页小惊喜,(生日,周年,表白通用) ☞谁说程序员不懂浪漫

有女朋友的拿去给女朋友一个惊喜&#xff0c;没女朋友的拿去表白&#xff0c;或者NEW它10000000个&#xfeff;ε≡٩(๑>₃<)۶ 文章目录 前言适用范围网页展示登录界面文字界面图片界面尾部界面 获取源码 前言 前些日子是女友的一周年&#xff0c;康康想用一种特殊的方…

520送什么给男朋友最好?送男朋友礼物排行榜

520要到啦&#xff0c;还没给男朋友准备好礼物的小伙伴儿们就赶紧收藏好这份超级礼物清单吧&#xff01;就我个人而言&#xff0c;有意义的礼物无非是让他感受到你的心意&#xff0c;大多数男生一般都不太会期待女生送来多珍贵的礼物&#xff0c;相反的是&#xff0c;他们更期待…

520送男朋友什么礼物比较好、520给男朋友的实用性礼物

520节日马上来临&#xff0c;各位女生朋友有没有想好给男票准备爱的礼物呢&#xff1f;对于男生来说&#xff0c;最关注的莫过于数码产品和游戏&#xff0c;所以准备礼物的时候往这个方向靠拢准没错&#xff01;但是部分女生对于这方面可能还是小白&#xff0c;所以小编在这里也…

七夕送女朋友什么礼物比较有意义!女生都拒绝不了的礼物推荐篇

马上就是七夕啦&#xff01;是不是很多朋友们都在想着到底送什么礼物给对方才会更合适呢&#xff01;别担心&#xff0c;身为一个好物推荐博主&#xff0c;在各种节日已经来去自由&#xff0c;对于女孩子喜欢的东西&#xff0c;那当然是女孩子更懂女孩子啦&#xff01;下面就是…

python程序员怎么给女朋友准备礼物

先来展示一下效果图&#xff1a; 不知道大家给女朋友的备注是什么&#xff1f;下面看看我的备注。 这是我给女朋友的备注&#xff1a; 再来看看给女朋友一个发射爱心的图片&#xff0c;这个叫“既许一人以偏爱&#xff0c;愿尽余生之慷慨”&#xff0c; 看完了发射爱心&#x…