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

Python中的虚拟环境和包管理

  Python中的虚拟环境
  虚拟环境  是独立的Python环境,有自己的 site-packages 。基本上,这意味着每个虚拟环境都有自己的一组对第三方软件包的依赖。
  如果在同一台机器上开发多个Python项目,虚拟环境会很有帮助。此外,当你将Python代码分发给其他人或在服务器上时,虚拟环境非常方便,可以重现地创建与开发机器上相同的环境。
  今天,我们将学习  有哪些工具可以创建隔离的环境  哪些工具有助于Python项目中的包管理  创建虚拟环境
  在Python的生态系统中创建虚拟环境有两种常见的方法: virtualenv 和venv  . venv
  venv 是用Python创建虚拟环境的最流行的选择。从Python 3.3开始venv 是标准库的一部分,因此一般在安装了Python后才可用。但是,基于Debian的Linux发行版要求要安装python3-venv, 因为他们的维护者决定将这个模块从核心Python安装中分离出来。
  使用创建虚拟环境 venv 可以从键入以下内容开始 python -m venv venv
  该命令 在当前的文件夹中创建一个名为 venv的文件 。现在,要使用这个新的虚拟环境,必须使用以下命令激活它: source venv/bin/activate # Use this command on bash .venvScriptsactivate # On Windows
  启动Python解释器并键入  >>> import sys >>> sys.executable "/Users/bas/Code/tmp/venv/bin/python" >>> for path in sys.path: ...     print(repr(path)) ... "" "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python39.zip" "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9" "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload" "/Users/bas/Code/tmp2/venv/lib/python3.9/site-packages" >>>
  刚刚启动的Python解释器位于你的虚拟环境中。此外 site-packages 目录(pip 安装包所在的位置)指向虚拟环境中的一个路径。 virtualenv
  virtualenv  工作原理相似。要使用它,必须首先通过pip安装它: pip install virtualenv
  然后可以  python -m virtualenv venv
  请注意,只是将模块的名称从 venv 到virtualenv (第一个论点)。这venv 目标文件夹保持不变。virtualenv 将创建一个类似于venv 以前有过。需要以与之前完全相同的方式激活新的虚拟环境: source venv/bin/activate # On bashvirtualenv和...相对venv
  你可能想知道这两种工具有什么不同。
  首先, virtualenv 有更长的历史。它已经在Python 2时代被使用了。直到3.3版,Python才加入了对虚拟环境的官方支持PEP 405 .
  作为第三方软件包, virtualenv 具有独立于系统Python安装的额外优势,因此可以独立升级。
  然而,使用的最大好处是 virtualenv 代替venv 它允许针对除系统Python之外的Python版本。如果只安装了Python 3.9,可以使用virtualenv 用Python 3.10创建一个虚拟环境(当然反之亦然)。你不仅可以使用任何想要的受支持的Python版本,还可以在没有root 或者Administrator 权限,因为安装是在你的工作目录中完成的。
  另一方面,使用 virtualenv 更加复杂。这是因为它的跨Python支持(甚至Python 2仍然支持)使得包和内部的发现有点复杂,并且引导过程需要定制。如果你对这些内幕感兴趣,伯纳特·加博的欧洲Python 2019演讲涵盖了这些见解。
  总而言之:
  venv
  virtualenv
  赞成的意见  创建虚拟环境的"官方"方式  更清晰的目录结构  支持不同的Python版本  独立于系统Python  弃用Python版本的两年宽限期
  面向连接的网络服务(Connection Oriented Network Service)  比...慢 virtualenv  更容易出错,因为虚拟环境更复杂  安装软件包
  既然我们已经有了一个可以工作的虚拟环境 virtualenv 或者venv ,我们可以开始安装我们需要安装的包,以满足我们项目的依赖性。 pip
  pip  是在Python中安装包的事实上的标准,并且从Python 3.4版开始就是标准库的一部分。
  要安装软件包,只需输入  pip install django
  pip 负责在PyPI上查找包并管理它的依赖项。在我们的示例中,我们可以通过上面的命令检查哪些包已经安装: $ pip list Package    Version ---------- ------- asgiref    3.5.0 Django     4.0.2 pip        21.1.3 setuptools 57.0.0 sqlparse   0.4.2
  这样, pip 已安装asgiref 和sqlparse  .
  共享构建环境的最常见方式是 pip 是通过创建一个requirements.txt 看起来像这样的文件: django==4.0.2
  问题是 pip 它负责安装依赖项,但不负责安装后的依赖项。例如,如果你安装了django 随着pip 它将安装sqlparse 和asgiref 给你的。但是,如果卸载django 之后,这两个额外的包将被保留,不会被删除。随着时间的推移,你可能会忘记项目真正需要的包,以及那些只是以前安装的包的剩余部分。当你在项目的生命周期中从一个PyPI模块迁移到另一个模块时,这种情况尤其适用。
  pip 也不区分开发和生产环境。因此,可能需要访问开发人员工具,例如black 或者pytest 开发期间。在生产服务器上安装这些软件,往好里说是不必要的,往坏里说是有害的。
  此外,当两个第三方包有冲突的依赖关系时, pip 没有提供解决这些问题的方法。
  最后,管理你的 requirements.txt 不被照顾pip 。一些开发人员只是使用pip freeze > requirements.txt 每当安装了新的依赖项时。然而,这是不可取的,因为它将包括子依赖,从而恶化上述问题。 pipenv
  pipenv  是由创建的工具肯尼斯·雷茨。最显著的区别是pip 那是pipenv 旨在自动跟踪已安装的软件包。为此,pipenv 创建两个文件,Pipfile 和Pipfile.lock  .
  pipenv 解决以下问题pip 上面提到过: 依赖性管理
  安装软件包会自动更新 Pipfile 还有Pipfile.lock
  当我们安装时 django 随着pipenv ,它将安装sqlparse 和asgiref 对我们来说就像pip 会的。然而,如果我们移除django 从我们的要求来看,pipenv 也将删除这些额外的依赖项。 生产/开发依赖性
  一些依赖项,比如linters或者测试工具,只在开发环境中需要。这就是原因 pipenv 支持--dev 旗帜。在生产系统上复制环境时,不会安装使用此标志安装的软件包。 虚拟环境
  pipenv 还可以为您创建和管理虚拟环境。在实践中,这意味着你可以完全依赖pipenv 创建项目环境,包括安装指定的Python版本。
  随着命令  pipenv --python 3.10
  可以使用特定版本的Python轻松创建一个全新的虚拟env。  poetry
  poetry  是Python的一个新的非常有雄心的包管理器。它的目标是为开发者可能遇到的所有虚拟环境和包管理问题提供一个解决方案。
  有趣的是, poetry –不像pipenv –不是的保护伞下的"官方"产品包Python打包权威。但是,它依赖于一个名为pyproject.toml (而不是Pipfile 和Pipfile.lock 如同pipenv 确实)。这pyproject.toml 规范具有"官方地位"人教版518 .
  还有, poetry 可用于管理虚拟环境和包,以及构建和发布自己的Python包。 pyproject.toml
  poetry 依赖于pyproject.toml 文件,如下所示: [tool.poetry] name = "poetry_tutorial_project" # ...  [tool.poetry.dependencies] python = "^3.10" loguru = "*" psutil = "*"  [tool.poetry.dev-dependencies] pytest = "*"  [build-system] requires = ["poetry>=0.12"] build-backend = "poetry.masonry.api"  [tool.poetry.scripts] run = "wsgi:main"
  该文件是唯一的配置文件 poetry 使用并包含关于依赖关系、构建说明和测试环境的所有信息。 虚拟环境和骨骼创建
  这 poetry new projectname 命令创建了一个合理的项目结构: /projectname   README.md   projectname       __init__.py   pyproject.toml   tests       __init__.py       test_projectname.py
  可以添加依赖项  poetry add django
  这 --dev-dependency 只能用于为开发环境添加依赖项。 构建并发布
  poetry 也可以负责构建你的包并将其发布到PyPI。它取代了twine 从这个意义上说。这里有一个很好的指南使用poetry 打包Python项目 . pip和...相对pipenv和...相对poetry
  pip
  pipenv
  poetry
  赞成的意见  可能是最常用的软件包安装程序  易于使用,包含在标准库中  官方PyPA项目  管理依赖关系,卸载软件包时也是如此  内置虚拟环境创建  pyproject.toml
  面向连接的网络服务(Connection Oriented Network Service)  requirements.txt 不支持 pyproject.toml 文件 大项目范围:没有一个工作工具(也可以被视为优势)  值得一提的其他工具virtualenvwrapper
  virtualenvwrapper  是对的一组扩展virtualenv  .
  该软件包附带了一些方便的CLI实用程序。最重要的是:  mkvirtualenv :创建虚拟环境的快捷方式。而不是venv 和virtualenv ,虚拟环境由创建virtualenvwrapper 不放在工作目录中,而是放在$HOME 目录。虚拟环境是通过以下方式创建的mkvirtualenv projectenv  . workon :因为virtualenvwrapper 在中央位置创建虚拟环境,激活是通过workon 命令。无论 你当前的工作目录是什么,都可以运行workon projectenv ,它会自动从你的$HOME 目录并激活它。 pyenv
  pyenv  是管理的工具 Python版本 。除了我们到目前为止讨论的工具之外,它对管理虚拟环境和包管理都没有帮助。然而,pyenv 当然,与其他工具兼容。pyenv 可以成为搭建开发工作站的便捷帮手。它本身不依赖于Python本身,因此可以方便地使用它来设置不同的Python安装root  /Administrator 权利。
  要安装特定版本的Python,请键入:  pyenv install 3.10
  使用 pyenv 结合虚拟环境管理器pyenv -团队创建了一些插件: pyenv-virtualenv  pyenv-virtualenvwrapper  已弃用:pyvenv
  pyvenv (不要与混淆pyenv )是一个用于创建虚拟环境的脚本,它过去是Python 3附带的。从Python 3.6开始,它已被弃用,并被取代python -m venv  . 硬币指示器 (coin-levelindicator的缩写)命令行界面(Command Line Interface for batch scripting)
  有时候你只想使用PyPI的CLI工具。在这种情况下,不需要虚拟环境进行开发,只需要管理 CLI工具。你每天使用的不同CLI工具都有自己的依赖关系,因此在系统Python中安装这些工具可能会再次导致已知的问题。因此,为每个CLI工具创建单独的虚拟环境是有意义的。
  为了使这一过程方便和易于管理,有一些工具可以做到这一点:为CLI工具创建一个隔离的环境,然后运行这些CLI工具。  pipx
  随着  pipx  您可以安装公开CLI脚本的软件包。pipx 将自动为每个CLI工具创建一个单独的虚拟环境,并将一个符号链接放入一个名为.local/bin 在你的内心$HOME 目录。
  要从PyPI安装CLI工具,只需键入:  $ pipx install pycowsay   installed package pycowsay 0.0.0.1, Python 3.9.6   These apps are now globally available     - pycowsay done! :sparkles: :star2: :sparkles:
  当它被安装后,你就神奇地在你的shell上拥有了CLI工具,并且它不会污染您系统的Python包。  $ pycowsay bas.codes    --------- < bas.codes >   ---------       ^__^       (oo)_______        (__)       )/            ||----w |            ||     ||pip-run
  pip-run  与...的目的相同pipx 。唯一的区别是pip-run 不提供持久的软件包安装,而是在工具执行后删除所有环境。 $ pip-run -q pycowsay -- -m pycowsay "bas.codes"     --------- < bas.codes >   ---------       ^__^       (oo)_______        (__)       )/            ||----w |            ||     ||
  pip-run 是一个很好的工具,因为它可以帮你清理。甚至可以使用安装的软件包运行交互式解释器,这使得pip-run 不仅对CLI工具有用,而且对研究PyPI中的模块包也有用: $ python -m pip-run -q boto >>> import boto

荣耀9X,荣耀中端机的巅峰之作如果你问我,令人最满意的中端机是哪一台,我会毫不犹豫地回答,荣耀9X。因为它的性能外观价格都很完美。如今,相信很多人都在用这个手机,因为这个手机的性能与配置尚未落后。荣耀9X于202022年3月笔记本轻薄本全能本推荐想入手一台笔记本,平时主要办公用,最主要的是追剧,也会用cad,3dmax,ps,pr,ai之类软件。想要看剧爽,清晰度高,最好2k,在高分辨率的同时希望处理器显卡性能可以跟上,亮身价千亿的京东副总裁患绝症!曾砸千万求医,3年过去治好了吗?大家好,我是腾飞。京东副总裁蔡磊亿万身家却在2019年查出患了绝症渐冻症,砸巨款与命运对抗,如今三年过去了,他怎么样了?他在确诊绝症后的努力又能带给我们什么样的启示呢?蔡磊是谁在2为什么95以上的摄影器材都是日本制造的?这个话题真是让国人感到伤心啊,我们先回顾中国现代化相机生产的历史。一在1955年,北京的大来精机厂以前苏联的卓尔基(Zorki)135旁轴相机为原型,研发出12台样机,那么这算得上以精准监管让恶意弹窗广告不再任性国家互联网信息办公室2日公布互联网弹窗信息推送服务管理规定(征求意见稿),并向社会公开征求意见。征求意见稿明确,弹窗推送广告信息,必须进行内容合规审查,不得违反国家相关法律法规应当转转上买二手iPad靠谱吗?ipad的初心是为了当时考研,为了刷网课用,现在考完后,iPad闲置就用来追剧了,平时手机就能满足所有需求了,不是万不得已也不会去买个iPad。iPad价格都能抵一部手机了,当时在为什么现在很多人会买合约机?感谢您的阅读!为什么现在很多人还是会购买合约机?前一段时间我购买了一款,红米的note10。它就是电信的合约机。你需要每个月交多少话费,并且还会对你的支付宝的花呗进行一定的冻结,在京东上面慧采的区分是什么?慧采分为三种模式自营慧采FBP慧采IBS慧采自营慧采无需入仓(厂直),产品可在京东慧采企业购等板块展示,打自营的标签(保证金10万15万不等毛保515)具体与采销谈,看综合实力与销今年辽宁将成建制引进100个创新创业团队今年,围绕做好结构调整三篇大文章,建设数字辽宁智造强省,加快打造具有国际影响力的先进装备制造业基地世界级石化和精细化工产业基地世界级冶金新材料产业基地,辽宁省科技厅以建设具有全国影中兴不再低调,20G1TB新机陆续备货,5200mAh电池开始起飞对于中兴来说,现在最重要的就是在手机市场上打造爆款产品,因为我们看到,尽管如今的中兴同样有很多旗舰诞生,但在销量人气上完全不行,因此为了引起用户普遍注意,最好的方法就是要打造爆款。我感觉自己已经崩溃,现在的自己特无助,有多少人被网络骗钱的?我也是被骗后一直在崩溃,2020年12月10日被骗,我一个打工的要打工六七年才有那么多钱,都是借的,刷的信用卡,当时被骗,死的心都有,头发也白了好多,几天都没有睡觉,吃饭,整个人生
敢与戴森PK,原里光能无线吹风机实力如何?在吹风机领域,戴森近几年来备受关注,新品面世总会受到全球广泛关注,戴森最大卖点在于外观创新,从外观设计和内部结构来看,戴森吹风机都十分另类。戴森电吹风的机身延续了其无叶风扇设计,马定位速度提高3倍,轨迹精度提升55,咕咚X3RE更专业的路跑装备最近最火的是啥?那当然是奥运会啦,中国健儿们的出色表现有目共睹,其中在跑步项目上,苏炳添以半决赛9秒83,决赛9秒98的好成绩,成为历史上首位闯进奥运会男子百米决赛的国人。虽然我们父亲节,ampampquot超级奶爸ampampquot养成秘籍从选对母婴冰箱开始不管是第一胎,第二胎还是第三胎,在宝宝出生之前,大多数宝爸们都已经开始着手准备照护即将出生的孩子了。要成为一名合格的超级奶爸,简单的喂奶抱孩换尿布可不够,从孩子出生前孕妇照顾产妇营官方倒计时预热海报流出麦芒10SE5G即将登场最近,麦芒官方给出了一系列的预热海报,海报中的内容显示,麦芒10SE5G这款新机将于7月19日正式发布。从命名也可以看得出来,这是一款全新的5G手机,势必将会在5G方面有所作为,带豫见真情显大爱,广汽三菱多项暖心举措关怀车主7月20日,河南省遭遇极端强降雨,郑州市日降雨量突破历史极值,河南防汛应急响应也由II级提升为I级。暴雨肆虐,洪水泛滥,这场突如其来的洪灾牵动着亿万人民的心。各行各界齐心协力,共克岚图汽车举办首届VOYAHNIGHT岚图用户之夜重磅发布岚图全场景充电矩阵VOYAHPOWER和岚图FREE首次OTA计划10月16日,知音话岚图首届VOYAHNIGHT岚图用户之夜在武汉知音号游轮上举办。这是以用户为中心量身打造的聚会,也是岚图用户的专属节日。当晚,500多位岚朋友参与了这场聚会。岚现在很多平台上面的游戏是否可以提现?现在很多一线平台的广告里面,或者主播直推,平台推广很多种游戏,采用的濠头就是下载登陆就有多少红包,然后升级挂机达到多少等级又有多少钱红包,相信很多朋友都遭遇过这样的游戏推广,投入其意式先锋卓越华章玛莎拉蒂鼎力支持G20罗马峰会2021年10月30日,上海二十国集团(G20)领导人第十六次峰会于10月30日至10月31日在意大利首都罗马举行。作为意大利制造卓越品质的代表,玛莎拉蒂成为本次G20罗马峰会的官上汽名爵郑州首批6C潮选店,河南东泽全国五星服务店四周年首届客户嘉年华答谢酒会圆满落幕2021年10月23日,上汽名爵郑州首批6C潮选店,河南东泽全国五星服务店四周年首届客户嘉年华答谢酒会活动隆重拉开序幕。特邀音乐嘉宾现场演绎蓝调萨克斯。自由奔放的音乐诠释专属名爵独十个问题问题告诉你华为P40Pro是否值得购买。(上)华为P40Pro已经出来一段时间了,可能有许多小伙伴还在纠结,华为P40Pro到底值不值得购买,是不是适合自己,今天小编就整理了一些小伙伴比较关注的问题并进行回答,帮助你了解华为P十个问题问题告诉你华为P40Pro是否值得购买。(中)手感怎么样?上期我们已经说了,华为这台手机因为中框做了垂直,所以在双曲面当中手感算是非常的不错。同时因为上下也是曲面所以返回桌面的手势手感也是非常好,华为P40Pro的整机重量大概