范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Python包管理工具

  一、Pip1.1 pip 简介
    Python之所以受欢迎不光是因为它简单易学,更重要的是它有成千上万的宝藏库。这些库相当于是已经集成好的工具,只要安装就能在Python里使用。它们可以处理各式各样的问题,无需你再造轮子,而且随着社区的不断更新维护,有些库越来越强大,几乎能媲美企业级应用。那么这些工具库怎么下载安装呢?它们被放在一个统一的"仓库"里,名叫PyPi(Python Package Index),所有的库安装都是从这里调度。有了仓库之后,还需要有管理员,pip就是这样一个角色。
    pip 是 Python 中的标准库管理器,这意味着它是一个工具,用它可以来管理 Python 标准库中其他的包,允许你安装和管理不属于 Python 标准库的其它软件包,其提供了对 Python 包的查找、下载、安装、卸载等功能。总的来说,pip的Python第三方库的大管家,搞懂它,会让你省很多事。从Python 3 >= Python 3.4 、Python2 >= Python2.7.9 版本开始,pip默认包含在Python的安装程序中,在安装Python时将会自动被安装,省事方便。
    Python 的安装器中自带了 pip,所以你可以直接使用它,除非你安装的是更早版本的 Python。你可以通过以下命令来判断是否已安装:pip --version     # Python2.x 版本命令 pip3 --version    # Python3.x 版本命令
  如果你的 Python 环境没有安装 pip,则可以使用以下方法来手动安装。pip 安装文件下载: pypi.org/project/pip…# 下载安装脚本 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py  # Python2.x 运行安装脚本 python get-pip.py  # Python3.x 运行安装脚本 python3 get-pip.py  # 升级 pip 版本, 需要使用 python 的命令来升级 python3 -m pip install --upgrade pip
  一般情况下,如果同时安装了 Python2 和 Python3,那么 pip 对应的是 Python 2,pip3 对应的是 Python 3。若是只安装了 Python3的话,那么pip和pip3的使用效果是完全相同的。1.2 pip 常用命令
  pip提供的命令不多,但是都很实用
  命令
  说明
  pip --version或者pip -V
  查看pip版本
  pip install PackageName[==x.y.z]
  使用pip安装第三方库,如果后面带有版本号,则安装指定版本
  pip uninstall PackageName
  安装好的库可以再卸载
  pip install --upgrade PackageName
  对当前库进行版本升级
  pip list
  列出所有已安装的第三方库和对应版本
  pip check PackageName
  验证已安装的库是否有兼容依赖问题
  pip list --outdated或者pip list -o
  目前已经安装的库中,看哪些需要版本升级
  pip show PackageName
  显示已安装软件包的信息
  pip show --verbose PackageName
  显示有关包的所有信息
  pip show -f PackageName
  查看库信息
  pip help
  帮助显示命令的帮助
  pip config list
  查看pip配置1.3 配置pip镜像
    pip命令默认使用的是国外的pypi镜像(pypi.python.org),安装慢不说,有时甚至会导致出现超时等网络问题,有时候为了安装一个包,失败重试安装好几次都不一定成功。所以,使用国内的pypi镜像,亦即切换 pip 源,这样速度上更有保证,不失为一种加速pip安装第三方包的好方法。常用的镜像站有阿里云、清华大学等。其中清华大学开源软件镜像站是每 5 分钟同步一次的,比较推荐使用。阿里云镜像站的速度也非常快,这也是我现在在使用的。
    切换切换 pip 源可以是临时性的,也可以设置为默认。临时性的,就是在安装包时,通过pip命令的 -i 选项指定镜像源即可。例如,临时使用阿里云镜像站作为 pip 源,可以是这样安装:# 安装包时,使用-i参数,指定pip源 pip install -i https://mirrors.aliyun.com/pypi/simple/ redis
    如果每次安装时都想要通过镜像源来安装,上面的办法不免有些麻烦。我们可以修改pip的配置文件,将镜像源写入到 pip 配置文件中。对于linux系统,修改 ~/.pip/pip.conf文件 (没有就创建一个文件夹及文件,文件夹要加".",表示是隐藏文件夹):# 创建~/.pip/pip.conf命令 mkdir ~/.pip && touch ~/.pip/pip.conf
  然后在文件中保存如下内容:[global] # 添加默认下载地址,以阿里云源为例 index-url = https://mirrors.aliyun.com/pypi/simple/  [install] # 此参数是为了避免麻烦,否则使用的时候可能会提示不受信任 trusted-host = mirrors.aliyun.com
    对于windows系统,在C:Users文件夹下的用户目录(例如如果当前用户是Administrator则是C:UsersAdministrator)下创建pip文件夹,然后再在此文件夹下创建pip.ini文件,在文件中写入一下内容:[global] # 添加默认下载地址,以阿里云源为例 index-url = https://mirrors.aliyun.com/pypi/simple/  [install] # 此参数是为了避免麻烦,否则使用的时候可能会提示不受信任 trusted-host = mirrors.aliyun.com
    配置完成后再通过 pip config list 查看pip配置。二、Pyenv
    我们经常会遇到这样的开发需求,比如你手头有多个开发项目,其中项目A要求用python3.7,项目B需要用python3.6,有要求项目A和项目B依赖包相互独立,互不干扰。为了满足这样的开发需求,我们需要在自己的电脑上安装多个Python版本,并且项目之间进行环境隔离。因此,我们要想运行这些项目,在工作电脑上就要安装不同版本的Python。pyenv 是Python版本管理工具,通过系统修改环境变量来实现Python不同版本的切换,利用它可以在同一台电脑上安装多个版本的Python,设置目录级别的Python,还能创建和管理vitual python enviroments。而且所有的设置都是用户级别的操作,不需要sudo命令。2.1 安装或升级pyenv
    首先安装pyenv,如果你是Mac电脑,那么推荐使用Homebrew来安装。brew update && brew install pyenv
  要想升级pyenv,则可以执行:brew update && brew upgrade pyenv
  pyenv安装完成后,需要将$HOME/.pyenv/bin添加到PATH变量前面,这一步非常关键。echo "export PATH="$HOME/.pyenv/bin:$PATH"" >> ~/.bash_profile source ~/.bash_profile
  也可以采用手动安装的方式,将pyenv检出到你想安装的目录。git clone git://github.com/yyuu/pyenv.git .pyenv echo "export PYENV_ROOT="$HOME/.pyenv"" >> ~/.bash_profile echo "export PATH="$PYENV_ROOT/bin:$PATH"" >> ~/.bash_profile source ~/.bash_profile
    添加环境变量,将PYENV_ROOT 指向 pyenv 检出的根目录,并向 $PATH 添加 $PYENV_ROOT/bin 以提供访问 pyenv命令的路径。这里的 shell 配置文件(~/.bash_profile)依不同系统而需作修改,如果使用 Zsh 则需要相应的配置 ~/.zshrc
  在使用 pyenv 之后使用 pip 安装的第三方模块会自动安装到当前使用 python 版本下,不会和系统模块产生冲突。使用 pip 安装模块之后,如果没有生效,记得使用 pyenv rehash 来更新。2.2 用pyenv安装Python
  安装完pyenv,可以安装Python,首先查看可安装的Python版本:pyenv install -l,接下来开始安装Pythonpyenv install  # version为版本号 # 安装完成后进行更新 pyenv rehash
  执行命令 pyenv versions 查看安装结果。# 查看所有已经安装的版本,注:星号指定当前的版本 pyenv versions * system  (set by /Users/dllwh/.pyenv/version)
  可以看到,已经成功安装了Python,安装的位置在 /Users/dllwh/.pyenv。2.3 Python版本管理pyenv global  全局设置python为指定版本。通过将版本号写入 ~/.pyenv/version 文件的方式,设置全局的 Python 版本,切换完成后,在系统中任何地方执行python,你会发现都是同样的Python版本。pyenv local  属于局部切换,通过将版本号写入当前目录下的 .python-version 文件的方式,修改当前目录下的Python版本,出了当前目录则失效。而且通过这种方式设置的 Python 版本优先级较 global 高。pyenv shell  设置当前shell窗口使用的python版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式,设置shell 的 Python 版本。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。pyenv global 3.9.9 pyenv version system * 3.9.9 (set by /Users/chunming.liu/.pyenv/version)
  可以看到,3.9.9 前面有一个星号,说明成功切换到了 3.9.9 版本,可以执行一下python来验证。三、Pipenv
    Pipenv 是 Python 官方推荐的包管理工具,它综合了 virtualenv、pip 和 pyenv 三者的功能,你可以使用 pipenv 这一个工具来安装、卸载、跟踪和记录依赖性,并创建、使用和组织你的虚拟环境。3.1 安装和升级pipenv
  如果你是Mac电脑,那么推荐使用Homebrew来安装和升级pipenv:brew update && brew install pipenv brew update && brew upgrade pipenv
  也可以通过pip来安装和升级pipenv:pip install pipenv pip install --upgrade pipenv3.2 为项目建立虚拟环境
  进入到项目目录中,通过下面的指令为项目创建虚拟环境。$ mkdir pipenv_demo $ cd pipenv_demo $ pipenv --python 3.9.9 Creating a virtualenv for this project… Pipfile: /Users/dllwh/work/pipenv_demo/Pipfile Using /Users/dllwh/.pyenv/versions/3.9.9/bin/python3 (3.9.9) to create virtualenv…   Creating virtual environment...Using base prefix "/Users/dllwh/.pyenv/versions/3.7.7" New python executable in /Users/dllwh/.local/share/virtualenvs/pipenv_demo-RYMSREda/bin/python3 Also creating executable in /Users/dllwh/.local/share/virtualenvs/pipenv_demo-RYMSREda/bin/python Installing setuptools, pip, wheel... done. Running virtualenv with interpreter /Users/dllwh/.pyenv/versions/3.7.7/bin/python3    Successfully created virtual environment! Virtualenv location: /Users/dllwh/.local/share/virtualenvs/pipenv_demo-RYMSREda
    上面的操作,给pipenv_demo这个项目初始化了一个 Python 3.9.9 的虚拟环境,并在项目录下生成一个项目依赖包文件 Pipefile。如果系统中没有 3.9.8 版本的Python,pipenv 会调用 pyenv 来安装对应的 Python 的版本。默认地,虚拟环境会创建在 ~/.local/share/virtualenvs目录里面。我们也可以通过 pipenv --venv查看项目的虚拟环境目录。可以通过 pipenv --rm 删除虚拟环境。
  如果想更改虚拟环境的目录,可以在 .bashrc 或 .bash_profile 中,设置环境变量WORKON_HOME,指定虚拟环境的目录所在位置,比如想将虚拟环境放到~/.venvs目录,则可以执行下面的命令。echo "export WORKON_HOME=~/.venvs" >> ~/.bash_profile source ~/.bash_profile
  如果希望在项目目录下创建虚拟环境目录(.venv),需要在 .bashrc 或 .bash_profile 中配置环境变量PIPENV_VENV_IN_PROJECT:echo "export PIPENV_VENV_IN_PROJECT=1" >> ~/.bash_profile source ~/.bash_profile3.3 用Pipenv管理依赖包
    pipenv使用 Pipfile 和 Pipfile.lock 来管理依赖包,并且在使用pipenv添加或删除包时,自动维护 Pipfile 文件,同时生成 Pipfile.lock 来锁定安装包的版本和依赖信息。相比pip需要手动维护requirements.txt 中的安装包和版本,具有很大的进步。3.3.1 安装依赖包
    为项目安装依赖包到虚拟环境中,使每个项目拥有相互独立的依赖包,是非常不错的Python的开发实践。安装依赖包到虚拟环境中的方法:pipenv install pytest
  执行完上面的命令后,检查一下是否安装成功:pipenv graph
    观察项目的根目录下,又多了一个 Pipfile.lock 文件。这两个文件记录了此项目的依赖包,这两个文件的区别是 Pipfile 中安装的包不包含包的具体版本号,而Pipfile.lock 是包含包的具体的版本号的。如果不想产生 Pipfile.lock 文件,在安装依赖包的时候,加上 –skip-lock 选项即可。
  在使用pipenv的时候,常常会安装过程比较慢,这个是因为pipenv创建的 Pipfile 中默认的Pypi源是python官方的 pypi.python.org/simple。我们国内…pipenv install --pypi-mirror https://pypi.tuna.tsinghua.edu.cn/simple 软件包名称
    为了避免每次都要指定–pypi-mirror,我一般会在创建好Pipfile以后,将文件中 source 块下的 url 字段,设置为国内的 pypi 源,我推荐的是清华的Pypi源或者阿里源,具体设置如下:[[source]] # 阿里镜像源 url = "https://mirrors.aliyun.com/pypi/simple/" # 清华大学镜像源 # url = "https://pypi.tuna.tsinghua.edu.cn/simple" verify_ssl = true name = "pypi"3.3.2 删除依赖包
  如果是要删除虚拟环境中的第三方包,执行:pipenv uninstall pytest3.3.3 安装项目所有的依赖包
  用git管理项目时候,要把Pipfile和Pipfile.lock加入版本跟踪。这样clone了这个项目的同学,只需要执行:pipenv install
  就可以安装所有的Pipfile中 [packages]部分列出来的包了,并且自动为项目在自己电脑上创建了虚拟环境。3.3.4 安装pipefile.lock中的依赖包
  上面的方法都是安装Pipfile中列出来的第三方包的最新版本,如果是想安装Pipfile.lock中固定版本的第三方依赖包,需要执行:pipenv install --ignore-pipfile3.3.5 安装requirements.txt里面的依赖包
  如果项目之前使用requirements.txt来管理依赖的,那么使用pipenv安装所有依赖可以采用类似pip的方法:pipenv install -r requirements.txt3.4 使用虚拟环境开发
    虚拟环境创建好了之后,就可以在里面进行开发了。如果在命令行下开发,则在项目目录下执行 pipenv shell,就进入到了虚拟环境中,在这个环境中,已经包含安装过的所有依赖包了,接下来就可以利用这些依赖包进行开发工作了。如果是用Pycharm进行开发,就更简单了,直接用Pycharm打开项目即可。可以从Pycharm中的左侧导航栏里面看到External Libraries显示的是虚拟环境中的Python解释器了。
  在虚拟环境中执行开发好的程序,有两种方式,一种是前面提到的先执行pipenv shell进入到虚拟环境后,再执行python程序;另一种方式,则是执行pyenv run,比如在虚拟环境中执行基于pytest框架编写的测试用例,只需要执行下面的命令即可:pipenv run py.test
  作者:独泪了无痕
  链接:https://juejin.cn/post/7063699409703272485

iPhone11等机型更新iOS14。7。1后,频频出现无服务无信号问题大家好,又见面了我是每天分享数码一线资讯和专注二手数码回收的换换回收可搜换换回收公众号最新消息,据9to5Mac报道称,iOS14。7。1的更新,让一些iPhone用户遇到来自运营2根8G内存和1根16G内存,哪个好?面对电脑程序和文档日益增多,应该如何从电脑硬件方面进行维护呢?别急,小编现在就跟你说说。。电脑提速主要有电脑软件优化和硬件配置升级两个大方向(下面列举的只是常见办法)如果是要在配置好消息!传华为海思芯片即将归来年底发布?小米12首发骁龙898由于美国无理的四轮制裁,华为面临着芯片卡脖子的问题,其自研的麒麟芯片能设计但无法生产,现在已经绝版了。目前麒麟9000芯片在功耗发热的控制优于高通骁锤子挺冤的试用了三天,改变了我对它的看法锤子究竟怎么倒下的,咱就不追究了,毕竟这里面牵扯的事情太过复杂,主要还是讲讲这几天我用坚果R2的一些想法。坚果R2由于工作原因,我拿到了坚果R2,还是纯白色,说实话第一眼看到它我就国产蓝牙耳机崛起,续航150小时,南卡N2S耳机还能作充电宝当初拿到南卡N2那款耳机的时候我是非常吃惊的,那是我从来没有见过的超大充电盒蓝牙耳机,也因为那款耳机音质好,超长的续航,被很多小伙伴接受,足足卖了50多万个。为了让大家有更好的体验脸谱封禁塔利班WhatsApp通讯账号中国日报8月18日电(记者蒋成龙)据法新社17日报道,互联网巨头脸谱Facebook表示,其已经封禁塔利班在脸谱旗下即时通讯软件WhatsApp上的官方和关联账号。脸谱发言人表示塔曝大批骁龙898旗舰已备案,还有四个月登场,你愿意等等吗?刚经历了首批骁龙888plus处理器的旗舰手机轰炸,这个主频达到了3GHZ的芯片,将高通骁龙芯片再次拉上了又一个高度,那么这个旗舰芯片的王座能坚持多久?9月份苹果要发布的A15新机目前降价最狠的三款手机今天跟大家唠唠目前降价最狠的三款手机1。小米11Pro目前某多多3699就能到手,小米11Pro绝对是一款被严重低估的旗舰级手机,相较于小米11的严重发热现象,11Pro在散热方面OPPO新机正式入网,搭载天玑1200,配置中规中矩下半年手机行业的竞争依然火热,接下来手机厂商会持续发力新机型,iPhone系列也会在9月份发布。最近在工信部有一款OPPO新机正式入网,这款机型大概率就是K系列产品,搭配天玑120我应该不是最后一个知道的吧?酒精不能擦电脑电脑屏幕花了不能用酒精清洁,否则,你会得到一块更花的屏幕为什么?据科普,酒精是一种有机溶剂,会溶解液晶屏上的有机薄膜,渗进去之后就会对电脑屏幕造成损坏。除此之外,电脑键盘也不能用酒全新设计天玑1200,OPPO神秘新机入网OPPO的产品多样化程度相信在座的都很熟悉,高端的Find系列,中高端的Reno系列,中低端市场的A系列K系列等等,每一个系列都有属于自己的卖点在其中,而在近日,工信部出现了一款O
快一年又六个月了,华为Mate50,终于要来华为Mate50,终于要来了。机哥算了算时间,距离上一次华为发布Mate系列正代,已经要追溯到2020年的10月22号。快一年又六个月了。虽然华为最近几个月,也陆陆续续发布了Mat你在用什么品牌手机,有四年以上没更换手机的吗?华为麦特10,四年半。我用的是华为v9,现在已经使用整5年了。现在用的是苹果。上一个手机是14年左右买的华为5C,现在还能用,并且也没有修过,就是用到现在很卡,只能下载一个较小内存算法时代终结,字节另起炉灶在一潭死水的互联网市场中,疯狂的字节跳动又丢下一颗小石子,企图再次复制今日头条的奇迹。字节跳动推出新版今日头条没错,字节跳动又出新产品了!目前这把火还只是在小圈子内部燃烧,没烧到大锂电概念重挫,天齐锂业领跌今天不仅仅只有天齐锂业暴跌,整个新能源汽车产业链都笼罩着不安的情绪。不好的消息纷沓而至。先从下游讲起,4月9日,蔚来已宣布其整车生产已经暂停。4月10日,蔚来再度宣布,部分车型起售互联网大厂毕业时代从实习生到资深员工,无一幸免毕业快乐,恭喜您顺利毕业,感谢一路相伴。继优化之后,毕业成为互联网大厂又一黑话。2017年进入京东的欢欢,也在京东这轮裁员的名单上,HR说你可以异动,只要能找到接收你的部门,但实际马云不高兴,霉霉好伤心这出其实是阿里的复仇行动,去年他们花重金请霉霉来唱歌,想借她的名声提高一下双十一的国际影响力,结果她啥也不让发,请了个寂寞。于是马云筹谋一年,终于想到了一个办法能够彻底摧毁她和她粉为什么安卓国产App得体积越来越大国产APP体积越来越大的原因比大家想象中要复杂很多为什么呢?杭州蒙特APP开发曾表明说,是因为我们每次手快都点开后看了一秒钟就以为已经知道了,实际上是我们忽略了自己。一新功能的增加曝iOS16或于WWDC首日发布,iPhone12让路新机,价格刷新爱疯史近日,苹果正式发布了iOS15。4版本,期待已久的皮肤解锁功能终于发布了,可以说方便了很多用户的日常使用,不过现在苹果已经关闭了之前的验证通道,iOS版本15。4。值得一提的是,由Oracle学习笔记1。partitionby在保留全部数据的基础上,只对其中某些字段做分组排序,如select,ROWNUMBER()over(partitionbyNameorderbyScore黄光裕这么努力国美为何还巨亏?收购支付牌照槽点满满成绩拿的出手吗?作者鸢钟肇瑞预付5个多亿,进军互联网支付。耗时多年,却收到央行通知审批暂停,交易至今未完成,预付款可能只收回4个多亿。这笔亏钱买卖,不是发生在别人身上,恰恰是黄光裕股价下跌惹众怒Meta(FB。US)股东计划推动对扎克伯格的权力审查智通财经APP获悉,由于Meta平台(FB。US)的股价今年下跌超过34,部分股东表示,他们计划推动对CEO马克扎克伯格的权力审查。为了争取支持,一个名为SumOfUs的企业问责组