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

如何为python项目创建虚拟环境

  我们在开始一个python项目,而不是几行简单的代码时,我们倾向于开始使用第三方的dependencies.当项目越来越大时,我们需要考虑如何有效的管理这些第三方库。当安装第三方库时,我们肯定是想安装在虚拟环境中。帮助我们保持我们实际系统环境的干净,避免打乱整个系统python环境。我们为什么需要python的虚拟环境?
  我们可以使用pip把第三方库安装到python项目中。一个项目中往往要安装多个,鉴于安装的第三方库的各种版本,可能会导致一些兼容和运行的问题。
  当我们在python项目中使用pip install  ,我们是安装到全局python下的,将会根据现有的python版本安装第三方包。
  我们可以通过以下命令来查找python的安装目录:python -c "import sys;print(" ".join(sys.path))" 输出: C:UsersAdministrator.*AppDataLocalProgramsPythonPython36python36.zip C:UsersAdministrator.*AppDataLocalProgramsPythonPython36DLLs C:UsersAdministrator.*AppDataLocalProgramsPythonPython36lib C:UsersAdministrator.*AppDataLocalProgramsPythonPython36 C:UsersAdministrator.*AppDataLocalProgramsPythonPython36libsite-packages
  如果我们使用pip3 install ,将会安装到python3安装目录的单独的目录下。我们可以用以下命令来覆盖pip3这个命令:python2.7 -m pip install 
  但是这仍然解决不了我们在全局python下安装第三方库的问题,将会出现下列的问题:不同python项目之间会使用不同版本的第三方库,可能会导致互相冲突项目的依赖库和操作系统的依赖库会产生冲突,导致出现项目错误或系统错误。多用户项目将很难实现。不同版本python和库的代码测试将会是一个挑战
  为了避免以上的问题,python开发者使用虚拟环境。这个虚拟环境把安装的这些第三方库在一个隔离的环境中(目录内)保存。如何创建一个虚拟环境
  确保你的系统上已经安装pythonpython --version
  然后看一下pip是否也能正常调用pip --version
  我们需要一个工具来创建python的虚拟环境,venv。它是封装在python3.3+版本以上的python中的。
  如果我们使用python2,我们需要手动安装一个工具。这是为数不多的一个我们需要全局安装的第三方库。python2 -m pip install virtualenv
  注意:我们将会在文章中讨论很多venv和python3,操作系统环境不同,可能会导致某些命令的些许不同,某些工具的工作原理也些许不同。
  如果你的系统上没有安装pip:sudo apt-get install python-pip 然后安装virtualenv pip install virtualenv
  我们首先要为项目创建一个文件夹,并进入这个文件夹:mkdir my-python-project && cd my-python-project
  然后我们再创建虚拟环境:python3 -m venv virtualenv #创建一个名为virtualenv的虚拟环境给,可以是任何名字
  这将会创建一个名为virtualenv的目录,这个目录将会包含bin、lib、include文件夹,还有一个环境配置文件。
  所有的文件都是为了确保,所有的代码都运行在当前的虚拟环境下。这会帮我们把工作环境和操作系统环境隔离开来,避免我们之前提到的问题。
  为了使用这个虚拟环境,我们需要激活它。激活以后,还会更改我们的命令提示符标志。这个标志也是为了表明虚拟环境已经激活,python的代码都是在这个环境下执行。#UBUNTU LINUX系统激活虚拟环境 $ source env/bin/activate (virtualenv) $#windows激活虚拟环境 E:my-python-projectvirtualenvScripts>activate (virtualenv)E:my-python-projectvirtualenvScripts>activate
  在虚拟环境下,无法访问使用全局的第三方库,在虚拟环境内安装的库也无法在外部使用。
  在虚拟环境中,只有pip和setuptools是默认安装的。
  激活虚拟环境后,变量path也会相应地发生改变,以达到虚拟环境的目的。
  当我们完成工作,想切换回操作系统的全局环境,我们需要使用deactivate退出虚拟环境。#linux ubuntu下 (virtualenv) $ deactivate  $  #windows系统下 (virtualenv) E:my-python-projectvirtualenvScripts>deactivate E:my-python-projectvirtualenvScripts>如何管理虚拟环境下的第三方库
  我们配置了虚拟环境并激活以后,我们不想在分享项目时,连同使用pip install命令安装的第三方库也一起分享。我们想去除我们的虚拟环境文件夹,但仍然可以在其他的电脑或系统上重新运行我们的工作。
  为实现这个目的,我们可以在项目根目录下创建一个requirement文件。假设我们在虚拟环境下安装flask,安装完成后我们使用pip freeze命令。它将会列出我们已经安装过的库名和版本号。(virtualenv) $ pip freeze click==8.0.3 colorama==0.4.4 dataclasses==0.8 Flask==2.0.2 importlib-metadata==4.8.1 itsdangerous==2.0.1 Jinja2==3.0.2 MarkupSafe==2.0.1 typing-extensions==3.10.0.2 Werkzeug==2.0.2 zipp==3.6.0
  我们可以将这个列表写到requirement文件中,上传到git保存,或以任何形式跟他人分享。(virtualenv) $ pip freeze > requirements.txt
  这个命令也可以更新这个requirements.txt文件,所以在每次安装一个新的第三方库时,我们都习惯性的运行一下这个命令,来更新我们的安装列表。
  然后,如果任何人想在他们的电脑上运行我们的项目,他们只需要做:$ cd copied-project/ $ python3 -m venv virtualenv/ $ python3 -m pip install -r requirements.txt
  所有的一切都如在我们电脑上运行的一样。使用pipenv来创建python虚拟环境
  安装pipenvpip install pipenv
  pipenv基本上是pip的一个替代工具。它引入了两个文件,pipfile用来替换requirements.txt,Pipfile lock(which enables deterministic builds,确定第三方库的子依赖库版本的更新的解决方案)
  pipenv在机理上是运行pip和virtualenv,但使用一个命令来简化操作。$ cd project_folderpipenv shell #如果当前目录没有虚拟环境给,会自动创建一个新的虚拟环境。 #你可以指定使用python3或python2的版本 --two或--three #前提是操作系统上也要安装相应版本的python pipenv shell --two 或 --three
  安装第三方库,如flask,或numpypipenv install flask==0.12.1 pipenv install numpy #也可以不指定版本号
  也可以从Version Control system比如git来安装第三方库pipenv install -e git+https://github.com/requests/requests.git#egg=requests
  需要注意上面的-e参数可以使安装editable,目前对于pipenv来说是必须的。
  如果你需要使用pytest来测试项目,但在上线后不需要这个库,你可以指定这个库仅仅作用于开发模式 --dev.pipenv install pytest --dev
  --dev将会把第三库放到pipfile的一个单独的地方【dev-packages】。
  如果你现在完成了开发,本地运行正常,你想锁定你的开发环境,并转至线上。使用如下命令确保开发环境:pipenv lock
  这个代码将会创建或更新你的环境,你无需手动更改编辑。我们也应该一直使用自动生成的文件。
  lock以后,在production环境,你需要安装最新的成功的运行环境。pipenv install --ignore-pipfile
  这个命令是告诉pipenv,安装时忽略pipfile,用pipfile.lock里的列表。pipenv将会创建一模一样的环境,包括子依赖库。
  现在,另一个人想要对代码做些更改,这种情况下,他得到代码,包括pipfile,运行如下命令pipenv install --dev
  这个命令将会安装开发所需的所有的第三方库,包括普通的install以及--dev安装的。
  如果没有指定版本号,install命令就会给第三方包括子依赖库一个机会去升级它们的版本
  举例,现在你开发用到的一个第三库有了版本升级,因为你不需要一个特定的版本,所以你在install的时候没有指定版本号。当你运行pipenv install时,最新版本的第三方库会安装到你的开发环境内。
  然后你对代码做了一些更改,结果如预期一样。然后你再重复上面的步骤lock你的环境。并更新至Production.pipenv常用的一些命令#打开一个第三方库  pipenv open flask
  将会使用默认的editor打开第三方库的代码。无需shell运行某个命令 pipenv run 检查环境安全性 pipenv check删除某个库 pipenv uninstall numpy 删除所有库 pipenv uninstall --all 删除所有开发时用到的库 pipenv uninstall --all-dev请点赞关注来支持我的工作,更多的文章会定期分享!

总裁价到,一分钟送一台红米Note10,米粉有福了今天我的朋友圈被不少6。1儿童节刷屏了,当然了这是女孩子的朋友圈而男孩子的朋友圈则不同,要么是数码大件的入手,要么就是发一些战报。而其中最让我感觉到意外的是小米,在6。1开门红当天市值蒸发近2000亿,中国销量大跌67,特斯拉还挺得住吗?近几年,随着我国新能源汽车行业的迅速发展,特斯拉快速崛起,成为了神一样的存在。在很多人心目中,特斯拉就是电动汽车领域的最佳代表,所以即使是国外不断传出特斯拉,国人购买特斯拉的热情依多花270亿瑞典也要禁华为!爱立信力挺老对手,如今爱立信怎样了瑞典是世界上的永久中立国,更是西方国家中第一个和我国建交的国家。两国贸易往来一直很频繁。瑞典通信网络从2G时代到5G时代的建设也一直有中国企业参与。特别是5G时代,我国华为在5G技午报LG正式停产手机微信再次升级青少年模式LG正式停产手机据韩媒报道,LG电子官方表示,已在5月底正式停止了手机生产。LG在越南的手机生产线将转移到家用电器,计划7月底完成对手机产线工人的重新分配。此前LG表示,将在7月3微信再次升级青少年模式,视频号专属内容池上线6月1日,微信青少年模式保护能力再升级,设置了该模式后,青少年只能在微信视频号观看平台精选的适合青少年的内容,目前该功能正逐步覆盖,用户更新到微信最新版本,并根据视频号弹窗消息指引辨识度拉满!网传iPhone13将推出新配色,这次是玫瑰粉?虽然临近6月,但是结合多家媒体的爆料表示,今年苹果发布会不会延期了,将会在9月份正式发布iPhone13系列,虽然外观设计上似乎没有太大的变化,不过有信息显示新机可能会在配色方面玩电商平台大力补贴,iPhone12跌至良心价,还等什么iPhone13?当消费者看到自己刚购买没多久的手机售价突然大幅下调,肯定会感觉不开心,甚至还会因此埋怨起这一品牌,但事实上有时候手机厂商们还挺无辜的,因为并不是它们所下调的价格,单纯只是电商平台的中信建投鸿蒙即将正式发布,重点关注鸿蒙生态解决方案合作伙伴中信建投在研报中称,鸿蒙2。0将于6月2日正式发布,华为公司预计到今年年底将有至少3亿设备搭载鸿蒙OS,其中2亿台为华为自有设备,剩下1亿台来自生态产品合作伙伴。继续重点关注鸿蒙O魅族618战报京东天猫平台开售1560分钟,手机销量同比增长300IT之家6月1日消息魅族科技今日公布了其618活动的战报,魅族手机销售额同比再次大幅增长。魅族手机在京东平台开售15分钟内,销售额同比增长300,在天猫平台开售1小时,销售额同比增618如何正确买手机?教你用4869元买iPhone12又是一年618,平时一点折扣也没有的热门手机也有优惠了!就连一贯高冷的苹果也不例外。相信很多人都打算在618为自己换一款心仪的新手机,那么618到底什么品牌折扣力度最大?怎样才能拿安利6个用了不想卸载的手机软件1纸塘壁纸壁纸软件在各家手机应用商店是数不胜数,数量非常多,当然质量也参差不齐,不少手机壁纸软件还是用做PC壁纸软件的思维在做,聚合一些分类后就主打美女豪车等吸眼球的壁纸,甚至还内
综合性能全面升级,小米手环5开箱图赏2020年6月11日,小米举办了一场线上直播分享会,饱受米粉们期待的小米手环5首次亮相,成为本次直播中的一大焦点。此次小米手环5全面升级,诚意满满,不仅配备了更大尺寸的1。1英寸A性能与颜值共存,iQOOZ1幻彩流星开箱2000元档位的手机哪款最香?如果你追求的是性能综合表现,那肯定就是iQOOZ1了。这款手机我之前也做过比较详细的评测,有兴趣的朋友可以去看看。近日,iQOOZ1系列推出了全新配色穿梭历史长河,工业一体机为智慧博物馆搭建信息桥!智慧化概念的不断推广和普及,渗透到各领域的应用中。展柜展示作为智慧化落地行业之一,牵涉到钣金机械灯光美工多个领域,且像博物馆纪念馆等特殊使用环境对设备恒温恒湿密闭性安全性要求都很高工业安卓一体机升级服装制造产线,采用智能化渗透的手段!伴随中国制造2025战略方针的推进,国内制造普及智能化的进程已经得到逐步落地,越来越多的智能制造示范基地生成,也给国内许多制造企业带来了范本。在智能制造的大环境下,据公开数据显示,实时连接无人机,小尺寸工业安卓一体机应用市场已打开!无人机因其具有高度自主配置方便动态部署等特点,通过网络连接之后,可接受各种指令,远程准确执行任务,并将实时接收数据上传云端,让用户可以根据数据进行决策分析,因此其在军事消防监控环境数字媒体技术兴起,智能政务会议室升级该怎么做?随着多媒体信息发布的兴起,其基于数字媒体技术,以液晶等离子LED和多屏幕拼接作为显示终端的动态信息发布形式,逐渐受到越来越多机构的欢迎。在基于互联网的端到端专业化解决方案提出之后,智慧仓储无人仓储,工业安卓一体机应用显区别仓储作为大型制造企业物料成品出库管理的重要场地,是制造业运营不可忽视的重要一环。加上近几年物流市场发展逐渐庞大,大型物流仓储管理需求也在不断上升。传统的仓储来多依靠人工来运作,存在工业4。0可视化项目改造中,触控一体机配置要达到什么等级?伴随全球工业4。0的趋势,加上制造变革的市场需求,生产制造可视化已经成为现今国内众多制造企业的重要发展方向。通过利用各种智能设备,如触控一体机平板电脑手持采集器智能移动端预警提示平工业显示器功能需求少,在全自动包装机组应用中却不一样在全球第四次工业革命的进程中,自自动化数字化智能作为众多制造企业的主要发展方向,带动了众多工业应用场景的改变。从原料运输分配物料车间制造,到生产现场可视化监控管理检测质量管控包装出白话NBA雄鹿再胜太阳相约天王山,太阳你们也要硬起来啊文大白大家好,我是大白。欢迎来到我的白话NBA。虽然这两天我每天都有在更新视频,不过基本是另一个节目白话天下里聊时事热点,没有聊NBA。所以好多咱们白话NBA的粉丝都说想我了,还催白话天下8天拿下阿富汗,塔利班是怎么做到的?大家好,我是大白,欢迎来到我的白话天下。昨天咱们白话粉丝点播让我聊最多的一个话题是阿富汗,那我们就来聊聊这个阿富汗。新闻大家也都知道了,阿富汗最近在闹政变。阿富汗原来的总统,叫加尼