刚开始用Pycharm的时候,选择project interpreter,add local的设置解释器的时候,里面有三个选择:

1. virtual Enviroment
2. system interpreter
3. conda Enviroment

1. system interpreter表示本地的解释器
选择系统里面安装的Python作为解释器,不推荐使用

2. Virtual Environment—Python的虚拟环境
可以使一个Python程序拥有独立的库library和解释器interpreter,而不用与其他Python程序共享统一个library和interpreter。虚拟环境的好处是避免了不同Python程序间的互相影响(共同使用global library 和 interpreter),例如程序A需要某个库的1.0版本,而程序B需要同样这个库的2.0版本,如果程序B执行则A就不能执行了。

Virtual Environment是一款工具,Pycharm中集成了,用以创建独立的虚拟环境。Virtual Environment主要解决的库依赖和版本依赖、以及间接授权等问题。

推荐使用虚拟环境

上面两种解释器的区别:
一个是本地环境
一个把环境打包隔离了

3. conda Enviroment
如果你的电脑中安装了Anaconda软件,也可以使用Anaconda里面附带安装的Python解释器,和第一种使用本地解释器类似

4. 本地创建虚拟环境
如果没有安装Pycharm,只安装了轻量级编辑器,比如Geany等。
也可以本地创建虚拟环境,只需要安装virtualenv包即可

virtualenv,是一款Python工具,用以创建独立的Python虚拟环境。在一个Python虚拟环境中,持有Python所必须的依赖库,形成Python的虚拟运行空间。

virtualenv的使用方法如下:

1.通过pip安装virtualenv的命令:
pip install virtualenv

2.创建虚拟环境my_venv的命令:
virtualenv my_venv
virtualenv会创建一个目录my_venv,其中包含:
所有Python的可执行文件,以使用Python项目所需的软件包;
pip类库的副本,以在必要的时候用以安装其他软件包。
my_venv目录结构:
lib/,包含虚拟环境中后续安装的软件包
include/,包含支持Python的类库
bin/,可执行文件
python,可执行python的命令文件
pip,辅助安装其他软件包的命令文件
setuptools

3.创建虚拟环境my_venv,指定要使用的Python版本,命令:
virtualenv -p /usr/bin/python2.7 my_venv
或者在~/.bashrc文件中设置环境变量VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7

4.创建虚拟环境my_venv,使用已有的全局软件包,即虚拟环境中不包含全局软件包,命令:
virtualenv --no-site-packages my_venv
从virtualenv 1.7开始,默认不包含全局软件包;
全局软件包默认位于/usr/lib/python_version/site-packages

5.创建虚拟环境my_venv,继承全局软件包,即虚拟环境中包含全局软件包,命令:
virtualenv --system-site-packages my_venv

6.进入虚拟环境my_venv所在的目录,首先激活该运行环境:
source my_venv/bin/activate
成功激活虚拟环境,可以看到命令行提示符发生变化。这样,后续的操作都是针对当前的虚拟环境进行的,不会影响其他运行环境。

7.在激活的虚拟环境中,通过pip安装其他必要的软件包:
pip install other_package

8.最后,注销当前已经被激活的虚拟环境:
deactivate

9.删除虚拟环境,只要删除其目录即可:
rm -rf my_venv

10.为了保留虚拟环境中的安装配置,可以将其输出到备份文件中,命令如下:
pip freeze > requirements.txt

11.在需要的时候,可以将其还原到虚拟环境中,命令如下:
pip install -r requirements.txt

虚拟环境创建及解释器设置详见作者的另外两篇文章:

Pycharm 2018 虚拟环境创建及解释器的设置(小白图解教程)
https://blog.csdn.net/u011318077/article/details/86251511

WIN10系统下的Python3.7 安装虚拟环境virtualenv和创建Web网站
https://blog.csdn.net/u011318077/article/details/85235544

PyCharm三种解释器的区别(virtual Enviroment, system interpreter, conda Enviroment)相关推荐

  1. LVS三种模式的区别及负载均衡算法

    转载自  LVS三种模式的区别及负载均衡算法 LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,由章文嵩博士在1998年5月成立,在li ...

  2. Java03-day03【switch、循环(for、while、do...while)、三种循环的区别、跳转控制语句、Random、循环经典例题】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] &qu ...

  3. 电路常识性概念(6)-VCC、VDD和VSS三种标号的区别

    电路常识性概念(6)-VCC.VDD和VSS三种标号的区别 在电子电路中,常可以看到VCC.VDD和VSS三种不同的符号,它们有什么区别呢? 一.解释 VCC:C=circuit 表示电路的意思, 即 ...

  4. 函数参数三种传递方式的区别

    函数参数三种传递方式的区别 问题提出: 1.当一个类的对象作为实参数传递时,使用值传递和引用传递有什么区别? 比如: DateType ExampleFun(CString &strFileN ...

  5. 服务器UDIMM, LRDIMM,RDIMM三种内存的区别

    服务器UDIMM, LRDIMM,RDIMM三种内存的区别 UDIMM RDIMM LRDIMM 区别与应用 随着应用程序的不断增长,内存被迫承担着更大压力.目前不管是服务器租用还是PC领域, DDR ...

  6. a commit git 参数是什么意思_Git中的git reset的三种参数的区别

    我们平时在使用git的时候,经常会遇到需要撤销上次操作的需求,这时候需要用到git reset的这个命令,他的使用就是 "git-reset – Reset current HEAD to ...

  7. 5分钟理解Iass Pass SasS三种云服务区别

    5分钟理解Iass Pass SasS三种云服务区别 其实搞懂这个问题也不难,我们可以把云计算理解成一栋大楼,而这栋楼又可以分为顶楼.中间.低层三大块. 那么我们就可以把Iass(基础设施).Pass ...

  8. 西门子哪款plc支持c语言,西门子PLC三种语言的区别

    原标题:西门子PLC三种语言的区别 PLC是机器人重要的一部分,下面小编就为大家介绍一些3种语言的区别,帮助大家学习. 一.梯形图 梯形图作为简单易读通俗易懂基本属于新人学习PLC的首选,而且调试的时 ...

  9. MySQL 不等于的三种使用及区别

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ MySQL中常用到判断符 ...

最新文章

  1. ACMNO.36输入三个整数,按由小到大的顺序输出。
  2. BZOJ-2190-仪仗队-SDOI2008-欧拉函数
  3. 29/100. Counting Bits
  4. Linux下安装Beego:go install: cannot install cross-compiled binaries when GOBIN is set
  5. Eclipse控制台输出信息的控制
  6. 用python实现星期的转换_在Python中将秒转换为周-天-小时-分钟-秒
  7. 【博主推荐】html好看的个人主页(附源码)
  8. 音频处理之回声消除及调试经验
  9. python 实现省全称和省的简称互相转换
  10. CDN回源原理和CDN多级缓存
  11. 【Windows 问题系列第 8 篇】如何查看电脑磁盘属于固态盘还是机械硬盘?
  12. ubuntu安装chrome浏览器64位
  13. 知乎上发现的高赞 20 款网页神器,免费又高效,用过后就离不开了!
  14. Windows On Top v3.8.0 Windows窗口置顶小工具单文件版
  15. list集合交集,并集
  16. 视觉SLAM⑨后端Ⅰ(KF、EKF、非线性优化)
  17. 推荐几个Github中国区排名前100的公众号
  18. MySQL 索引失效详解
  19. STC系列单片机内部EEPROM 测试程序
  20. 赠书福利|手握超4万亿美元,嘉信理财创始人的33条成功心法

热门文章

  1. 基于云计算和大数据的图书馆 应用系统建设设计
  2. 开源:基于百万商业圈.NET开发框架开发的并行带分词的采集器
  3. 淘宝如何解决超卖问题
  4. java ccf认证解答_CCF认证 java 中间数 遇到运行错误
  5. 获取oracle服务端时间,XPO学习一(获取数据库服务器时间)
  6. 西门子S7-1500PLC大项目案例 带14台发那科机器人 三个SEW变频器控制的4面转台 阀岛控制130多个气缸 2台西门子TP1200触摸屏
  7. TCAD软件(Sentaurus、Silvaco、Medici、Tsuprem4)安装总结
  8. java 网页排版乱_HTML、DIV+CSS网页制作中排版混乱的几种常见的情况
  9. 我和X-Plane 11首席程序员谈API设计
  10. 40G QSFP+光模块汇总