python中的venv 模块 -- 创建虚拟化的项目环境
前言
在使用 python 制作网页的过程中,我们往往需要先将站点的目录“虚拟化”。虚拟化其实就是将当前文件下程序的运行环境与整个系统的环境隔离。那么为什么我们要将一个项目虚拟化呢?
1.不进行虚拟化会产生的问题
在平时使用 python 时,有可能会遇到这几个常见的问题:
1.当运行的项目处于不同版本时(如 python 2.7/3.7 ),要通过切换 python 解释器的版本来运行程序(或要使用 python2/3 pip/pip3 等指令来对应不同的版本)。
2.有时做一个项目要用到许多第三方模块,但是其他项目基本不会用。如果直接 pip install 到系统中,项目删除后清除安装过的模块会很麻烦。
3.做完一个项目后,你希望能够不再一次安装它依赖的模块,就能在另外一个系统上直接运行。
4.你的项目暂时运行在一个旧版的第三方模块上,而新版的第三方模块不兼容你所写的程序。你既希望能够让原来的项目在旧版本上继续正常运行,又希望能够在另一个项目中使用新版本。
如果你遇到过上面这四个问题,并且希望能够改善这一些繁琐的配置过程,那么你就可以尝试对你的项目进行“虚拟化”。
**
学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习python或者有兴趣学习python的伙伴可以私信回复小编“学习”或者评论,留言,点赞 领取全套免费python学习资料、视频()装包**
2.创建一个虚拟化项目
python 自带了一个非常简便的虚拟化模块 - venv 。在 python 3.5 及之前的版本,创建一个虚拟化项目的指令为:
$ python -m venv <directory>
而在 3.6 之后的版本中,指令变成了
$ python3 -m venv <directory>
其中在 3.4 及之前的版本中,初始化一个环境是不会自带 pip 的。而在 3.4 之后,可以添加 --without-pip 这个参数来去掉 pip 包。
当然,venv还有 --copies 参数,它就可以在创建时把系统已有的模块复制进去。不过一般这个不常用。(因为系统里装的模块可能已经很多了)如果真的要使用系统中的模块,请参考第四小节的设置。
3.进入/退出虚拟化环境
成功创建了虚拟化的环境之后,我们需要先进入这个环境(不然 pip 还是会装在系统中)。我们可以使用以下指令来进入环境。其中 是你项目文件夹的路径。
MacOS 或 Linux bash/zsh $ source <venv>/bin/activate fish $ . <venv>/bin/activate.fish csh/tcsh $ source <venv>/bin/activate.csh Windows cmd.exe C:\> <venv>\Scripts\activate.bat PowerShell PS C:\> <venv>\Scripts\Activate.ps1
cometeme$ source /Users/cometeme/Documents/example/bin/activate (example)cometeme$``` 可以看到前面多了一个(example)的提示,说明我们已经进入到虚拟环境中了。在虚拟环境里,我们可以像正常一样操作里面的文件,或是安装第三方模块,只不过这一些都只会影响到本地的内容了。 当我们想要退出虚拟环境时,我们可以输入 deactivate 这个指令来退出。 ** 4.设置虚拟环境** 在虚拟环境的根目录下,我们可以看到一个叫 pyvenv.cfg 的文件。用文本编辑器打开后可以看到这几行内容:
home = /Library/Frameworks/Python.framework/Versions/3.7/bin
include-system-site-packages = false
version = 3.7.0
其中, home 指的是系统中 python 模块的安装位置。除非你自定义过了,不然这个默认值就是对的。 include-system-site-packages 这个参数可以设置是否开启“引用系统中的模块”的功能。如果开启了,那么当你就可以直接使用系统中已经装过的第三方模块。(但是你在虚拟环境下装的模块就不能被其他地方的程序使用)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
POI事件模式指北(一)-Excel2003
POI事件模式指北(一)-Excel2003 1、简介 Excel2003(.xls)是Microsoft Excel2003之前版本要求的格式,POI提供两种方式读取这种类型的文件 1、用户模式(User API):将xls文件全部读进内存,然后以dom结构处理; 2、事件模式(event API):用流的形式读取文件,占用内存较少,适用于愿意学习低级API结构的开发人员,需要对Excel文件的各个部分有基本的了解。 2、XLS文件介绍 XLS后缀的文件包括Worksheet文档和Workbook文档两种。是Excel 4.0及以前版本为Worksheet文档;以后的版本为Workbook文档。 2.1、Worksheet Document Worksheet文档只包括一个sheet,默认的文件后缀是“XLS”。 2.2、Workbook Document Workbook文档可以包含多个sheet,每个Workbook文档都包含一个全局设置,叫做(workbook globals)。 3、OLE 2复合文档系统 - POIFS 就像上面展示的,xls实际上实际上以复合文档的形式组织...
- 下一篇
[译]PEP 380--子生成器的语法
导语: PEP(Python增强提案)几乎是 Python 社区中最重要的文档,它们提供了公告信息、指导流程、新功能的设计及使用说明等内容。对于学习者来说,PEP 是非常值得一读的第一手材料,学习中遇到的大部分难题,都能在 PEP 中找到答案或者解决思路。 我翻译了几篇 PEP,这么做的目的一方面是为了加强学习,另一方面也是为了锻炼自己的英文水平。Python 与 English,都是如此重要。翻译能将两者巧妙地结合起来,真是一举两得。 本文介绍了子生成器的语法,即 yield from 语法。其它与生成器相关的 PEP 有 3 篇,翻译的结果附在了本文末尾。若有对翻译感兴趣的同学,可在 Github 上关注下我创建的项目 peps-cn 。 PEP原文 : https://www.python.org/dev/peps/pep-0380/ PEP标题: Syntax for Delegating to a Subgenerator PEP作者: Gregory Ewing 创建日期: 2009-02-13 合入版本: 3.3 译者 :豌豆花下猫(Python猫 公众号作者) 目录 摘...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS关闭SELinux安全模块
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果