pip是什么 python中str表示什么

醉里挑灯看剑
精选回答

pip是什么 python中str表示什么老白最近给朋友们讲解NLP,顺带做了点Python的介绍。虽然大家都或多或少的使用过Python(大部分都不是Python 工程师),但是老白还是惊讶的发现有不少同事并不知道virtualenv,每

老白最近给朋友们讲解NLP,顺带做了点Python的介绍。虽然大家都或多或少的使用过Python(大部分都不是Python 工程师),但是老白还是惊讶的发现有不少同事并不知道virtualenv,每次搞Python都是随便玩玩然后就把系统搞得乱七八糟的了。因此老白给大伙普及了下virtualenv这个神器,顺带也写下这篇文章。这篇的内容主要包含了pip,virtualenv和requirements.txt文件,完全基础,仅供Python新手们学习,有Python经验的同学可以绕道而行^_^。

什么是pip?

pip是一个从Python Package Index(PyPI)安装Python软件包的管理器。这里的PyPI就是一个Python第三方开源仓库。

如果大家有其他语言的背景,那么可能会对包管理器的概念比较熟悉。JavaScript 使用 npm 管理软件包,Ruby 使用 gem,Java使用Maven,以及 .NET 使用 NuGet。Python 中,则是 pip 作为标准包管理器。

Python其实最开始还有一个比较原始基础的包管理器easy_install。但是其渐渐被淘汰了,老白也不建议大家去花过多时间了解。也正是因为pip越来越重要,自从Python3.4和Python2.7.9之后的版本,pip都是默认包含在Python的安装包中的。如果使用的是之前的版本,可以通过easy_install pip来进行安装pip(是不是略显讽刺,easy_install安装一个工具来替代自己)。

easy_install pip

有了pip之后,我们就可以通过类似以下的命令来安装软件包了

#千万先别运行 pipinstalldjango

这里,我们将Django进行了全局安装(全局安装意味着安装完之后将对所有的应用可见)。但是在大部分情况下,我们并不希望进行全局安装。可以在下面的例子中看到,并不是每个应用都会使用同一个版本的软件包,全局安装将会使得软件的运行环境混乱不堪。

virtualenv解决了什么问题

virtualenv解决了一个非常具体的问题:其允许了多个Python项目在同一台电脑上同时开发,并且使用不同的运行环境。

为了更好的说明这个问题,我们可以假设virtualenv这个功能并不存在。当我们需要写一个具有HTTP请求的Python程序时,我们需要使用到Requests这个包,我们可以通过上面提到的pip命令进行安装Requests。

$ pip install requests Collecting requests Using cached requests-2.24.0-py2.py3-none-any.whl (61 kB) Collecting urllib3!=1.25.0,=1.25.1,<1.26,>=1.21.1 Using cached urllib3-1.25.9-py2.py3-none-any.whl (126 kB) Collecting idna<3,>=2.5 Using cached idna-2.10-py2.py3-none-any.whl (58 kB) Collecting chardet<4,>=3.0.2 Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB) Collecting certifi>=2017.4.17 Using cached certifi-2020.6.20-py2.py3-none-any.whl (156 kB) Installing collected packages: urllib3, idna, chardet, certifi, requests Successfully installed certifi-2020.6.20 chardet-3.0.4 idna-2.10 requests-2.24.0 urllib3-1.25.9

但是这个Requests会被安装到哪里呢?

如果是使用linux的话,默认会被安装到/usr/local/lib//site-packages。

Windows则是会安装到c:\users\<用户名>\appdata\local\programs\python\\lib\site-packages。

Mac则会安装到/Library/Python//site-packages。

Mac用户和Linux用户在这个过程中还有可能遇到权限问题。

安装好了之后,我们可以通过import requests来使用requests。整个软件的运行也不会有任何问题,客户很满意,赚钱大大的有。

于是用户又给我们了一个新的项目。在做新的项目时,我们发现我们又得使用requests了,只不过这次需要使用的是一个新功能,只有在最新版本的requests中才有这个功能。因此我们决定对requests进行升级.

pipinstall--upgraderequests

一切似乎都很正常,但是其实我们已经给未来埋下了隐患。

当我们运行第一个软件的时候,我们发现完全运行不起来了,到底怎么回事?因为requests的某些API在新版本中被更改了,虽然可能只是一个很小的改动,直接导致了我们原来的程序无法启动了。

此时,我们当然可以直接修改我们之前的应用使用最新的requests API来解决这个问题。但是这会相当的耗时间可能需要将很多东西都进行替换并且完成回归测试。从项目管理的角度来说,除非是出现了一些比较严重的bug,不然不应该占用新项目的时间来解决老项目的问题,因为这样会影响新项目的进度。而这是很常见的一个场景,更多的Python开发工作者可能不只有两个项目。如果总是把软件包都升级到最新版本,对于开发者而言,无异于噩梦。

virtualenv如何帮助开发者

virtualenv通过给每一个应用创建一个完全隔离的虚拟环境来解决这个问题。一个环境其实只是一个简单的文件夹包含了需要运行Python应用的所有依赖。其中也包含了Python运行程序本身,一个完整的Python标准库拷贝,完整的pip,以及site-packages目录。当使用pip进行安装软件的时候,使用的是这个virtualenv创建的pip,并且会将软件包安装到这个virtualenv创建的site-packages中。

如何安装virtualenv

如果已经有了pip,最简单的方式就是通过pip来安装virtualenv。pip和virtualenv也几乎是唯二的两个需要全局安装的工具了,一旦有了这两个,就可以通过virtualenv来创建虚拟环境并且在虚拟环境中工作。

pip install virtualenv

如何创建虚拟环境

virtualenv是创建虚拟环境所需要的唯一工具,而且创建过程也很简单。只需要切换到项目根目录,然后通过virtualenv创建一个新的虚拟环境:

cd/path/to/myproject virtualenvvenv

这里venv是虚拟环境文件夹的名字。这个文件夹会在项目文件夹中。例如,如果我的项目在~/sources/myproject,那么venv的地址就是~/sources/myproject/venv。但是其实我们可以将其放在任何文件夹中。

注意:如果使用类似于git之类的版本控制,记得将venv添加到.gitignore中。

如何使用venv

如果我们查看venv文件夹的话,我们会看到如下一些文件夹:

venv

这里主要的是Scripts文件夹,里面放置了完整的python运行命令以及pip。我们可以尝试使用Scripts中的pip进行安装requests。

使用venv中的pip安装requests

一切正常,而且requests被安装到了venv/Lib/site-packages中了。我们也可以使用venv/Scripts/Python命令,一切使用正常。但是。用起来真的好麻烦别急,virtualenv的开发者也想到了这点,因此他们提供了一个工具activate来减轻virtualenv使用者的负担,这样就不需要每次都输入完整的路径了。

在linux下。

$ source venv/bin/activate

在Windows中。

venv\Scripts\activate

使用了activate之后,我们再使用pip进行安装,默认就安装到venv中了。当然了,这个activate只在当前的terminal中起作用,如果新开一个terminal的话我们需要重新运行一次activate。如果希望在当前的terminal中切换到其他venv中,我们还可以调用deactivate来取消当前虚拟环境的使用。

Requirements.txt

pip和virtualenv就是一对好伙伴,特别是使用requirements.txt的时候。我们在本地创建好了我们的项目以及一系列依赖之后,我们会把这些代码包括依赖推送到代码仓库,或作为备份或与别人分享。很有包的体积都比较大,而且包并没有什么特殊性,因为我们肯定不希望我们直接将项目依赖的包推到代码仓库上。这时候我们就可以使用requirements.txt了。通过pip的freeze命令可以格式化的输出已经安装的软件包,通过重定向可以将输出直接写入requirements.txt文件。

生成requirements.txt文件

有了requirements.txt文件之后,自然也可以通过requirements.txt文件来继续安装。使用的就是pip install -r 的命令。下面截图显示的例子就是在一个新的虚拟环境venv2中安装requirements.txt中的软件包。

安装requirements.txt定义的软件包

来个小结

pip能够帮助我们安装软件包,pip是比easy_install优秀的一个工具,建议使用pip

virtualenv能够帮助我们创建一个隔离的运行环境

为了不用输入完整路径,使用activate来激活虚拟环境

使用requirements.txt来和他人共享项目依赖信息

等我变优秀 2024-02-17 20:24:18

相关推荐

投档会参考学考成绩吗 学考成绩有什么用

将成绩符合的学生的档案投给招生院校。这就是投档,投档不参考于学生的其他条件,只参考他的总成绩和志愿。而根据学校的调档比例省教育考试院确定他的投档比例,只要学生的档案被投档,决定他是否被录取的因素就会包含他的学考...
展开详情

艺考生集训注意事项 有什么要了解知道的

艺术生集训不要忽略了文化课,作为艺术生必须要做到文化课和专业课双赢,才能被心中理想大学录取,在这期间需要付出很大的努力。文化课也是非常重要的,不要忽略文化课,要一直学习专业课。艺考生集训注意什么学会针对性强化技...
展开详情

提高生物成绩的方法是什么 窍门有哪些

即通过分析教材,找出要点,将知识简化成有规律的几个字来帮助生物知识记忆。例如DNA的分子结构可简化为“五四三二一”,即五种基本元素、四种基本单位、每种基本单位有三种基本物质、很多基本单位形成两条脱氧核酸链、成为...
展开详情

艺术生集训注意事项有哪些 需要注意什么

艺术生在集训的时候也要同步文化课学习,夯实文化基础。考生在专业课集训期间,文化课千万不要丢,专业课和文化课的学习一定要兼顾。艺术生集训的注意事项一定要选择一个靠谱的培训学校。因为一个好的培训学校,懂得怎么以最快...
展开详情

艺术生什么时候集训好 有必要去集训吗

艺术生集训指的是艺术类学生在完成学业水平测试之后,由学校或自己向学校申请,暂时停掉学校的文化课,到专业的艺术培训学校进行封闭式训练,直到校考结束。美术生集训时间美术生集训,通常从高二下学期开始,5月份开始报名,...
展开详情

精选推荐更多>

芸窗是什么意思

芸窗,读音yún chuānɡ,汉语词语,意思是指书斋。亦作“芸牕”。出自唐·萧项《赠翁承赞漆林书堂诗》:“却对芸窗勤苦处,举头全是锦为衣。”
造句:
1、并蒂芙蓉映彩霞绣阁花香酒似诗芸窗学友结同心。
2、儿在京身体尚佳,精神亦适,风雨芸窗,友朋甚广,赋诗唱酬,不虞寂寞,媳妇来京反嫌不便。
3、绛桃春暖鱼龙变,向芸牕志绝韦编,功名一字总由天
4、举案欲看德耀妆芸窗学友早栽兰并蒂红花向党开。
5、三载芸窗烧烛短,一篇文论耗时长。

九霄云外的意思

九霄云外,汉语成语,拼音是jiǔ xiāo yún wài,意思是在九重天的外面。比喻非常遥远的地方或远得无影无踪。出自北齐·颜之推《颜氏家训·文章》:“一事惬当,一句清巧,神厉九霄,志凌千载。”
用法:偏正式;作主语、宾语、补语;用于表消失意义动词之后。
近义词:烟消云散、无影无踪。
造句:
1、他贪玩的时候早把老师的教导抛到九霄云外了。
2、小明上课不认真听讲,注意力早就飞到九霄云外去了。
3、小英在路上贪玩,早把妈妈让她买酱油的事给抛到九霄云外了。
4、当你在弥留之际,别人对你的看法造就被抛到九霄云外。

什么是优美

“优美”是一个美学名词,该词是指美好、美妙的意思。
出处:
1、《后汉书·蔡邕传》:“若器用优美,不宜处之冗散。”
2、《北史·魏临淮王彧传》:“三人才学虽并优美,然安丰少於造次,中山皂白太多,未若济南风流宽雅。”
造句:
1、优美的歌声在草原上随风飘荡。
2、此地山明水秀,风景优美。
3、优美的大自然可以纯净人的心灵。
4、山中绿树成阴,泉水淙淙,风景优美。
5、她的舞步轻盈优美,她的歌声悦耳动听。
6、看晨练的老人们打太极拳的动作伸展自如,看上去很优美。

靡使归聘的靡是什么意思

“靡使归聘”的“靡”的意思是无法,没有。出自先秦佚名的《采薇》。
原文节选:
采薇采薇,薇亦作止。曰归曰归,岁亦莫止。靡室靡家,猃狁之故。不遑启居,猃狁之故。
采薇采薇,薇亦柔止。曰归曰归,心亦忧止。忧心烈烈,载饥载渴。我戍未定,靡使归聘。
译文:
豆苗采了又采,薇菜刚刚冒出地面。说回家了回家了,但已到了年末仍不能实现。没有妻室没有家,都是为了和猃狁打仗。 没有时间安居休息,都是为了和猃狁打仗。
豆苗采了又采,薇菜柔嫩的样子。说回家了回家了,心中是多么忧闷。忧心如焚,饥渴交加实在难忍。驻防的地点不能固定,无法使人带信回家。
这首诗的主题是严肃的。猃狁的凶悍,周朝军士严阵以待,作者以戍役军士的身份描述了以天子之命命将帅、遣戍役,守卫中国,军旅的严肃威武,生活的紧张艰辛。作者的爱国情怀是通过对猃狁的仇恨来表现的。更是通过对他们忠于职守的叙述——“不遑启居”、“不遑启处”、“岂敢定居”、“岂不日戒”和他们内心极度思乡的强烈对比来表现的。全诗再衬以动人的自然景物的描写:薇之生,薇之柔,薇之刚,棠棣花开,依依杨柳,霏霏雨雪,都烘托了军士们“日戒”的生活,心里却是思归的情愫,这里写的都是将士们真真实实的思想,忧伤的情调并不降低本篇作为爱国诗篇的价值,恰恰相反是表现了人们的纯真朴实,合情合理的思想内容和情感,也正是这种纯正的真实性,赋予了这首诗强盛的生命力和感染力。
常见热点问答
热点搜索
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200
作文大全
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200