python之no module named xxxx以及虚拟环境配置过程
作者:如此简单^_^
在Python开发过程中,经常会遇到环境配置和包管理的问题,主要原因包括未安装所需包或使用虚拟环境导致的,通过pip install命令安装缺失的包是解决问题的一种方式,此外,使用虚拟环境,例如PyCharm支持的Virtualenv,可以为每个项目创建独立的运行环境
python no module named xxxx及虚拟环境配置
引起这个方面的报错是多方面的
1.可能是没有安装相应的包
需要 pip install xxx 进行安装
2.可能是使用了虚拟环境
例如使用pycharm的时候,会让选择是否使用虚拟环境(Virtualenv)
pycharm查看方式:
settings->project->project interpreter(解释器)
查看package区域是否有自己想要的module,没有需要点击右上角加号(+),进行安装
上图表示创建工程有两种方式:
- 第一种是利用:virtualenv,第二种是利用系统安装的python解释器。
- 第二种方式比较简单,而且快速生成了项目,因为它不需要复制各种库文件。
而virtualenv是pycharm自带的,有下面几个配置项目:
- Location:填写新环境的文件目录
- Base interpreter下拉框:选择Python解释器,默认是环境中配置的,可以修改。修改成什么解释器呢?后文会介绍。
- Inherit global site-packages:可以使用base interpreter中的第三方库,可能会花费时间进行复制;如果不选将和外界完全隔离,新建立的项目很干净,里面没有系统中已经安装的第三方库文件。
- Make available to all projects:是否将此虚拟环境提供给其他项目使用。勾选之后,可以提供给其他项目,如上文紫色的字体所示,等再新建下一个项目的时候,可以修改Python解释器,位置指向现在建立的虚拟环境。
为什么要设置虚拟环境(Virtualenv)?
例如:在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。所有第三方的包都会被pip安装到Python3的site-packages目录下。
如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办?
这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。
Virtualenv就是用来为一个应用创建一套“隔离”的Python虚拟环境。
virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。