python语言的魅力之一就是大量的外置数据包,能够帮助使用者节省很多时间,提高效率。模块下载和引用是最常见的操作,现在解析内部的原理和背后发生的故事,做到心里有数。

导航:

  • 基本定义
  • 模块使用
  • 模块导入顺序
  • 模块安装

基本定义

模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的Python文件(文件名:test.py,对应的模块名:test)

包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件)

模块分类:

  1. 内置模块
  2. 自定义模块
  3. 第三方模块(需要安装才能使用)

1.内置模块是安装python自带的模块,如random随机数生成模块,为python内置模块。

2.自定义模块指自己开发的模块,通俗讲就是自己写的一个python文件

3.第三方模块是指非python自带的模块,如图像处理模块matplotlib模块,需要先pip install matplotlib

模块使用

python模块的使用有两种方式,分别是import 和from ** import **。

import 导入一个模块

from ** import ** 从模块中导入函数

深层次来说:

import random 是将random模块中所有的代码复制给变量random,random是一个类的实例。

from random import randint 是将randint()函数的代码加载到当前位置

模块导入顺序

当使用import导入一个模块时,导入模块的查找顺序是:

1、系统python类库的缓存

2、当前目录

3、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。

4、如果都找不到,Python会察看python的标准库

 
使用sys.modules能够查看当前系统缓存的模块
 

在sys.path中指定了搜索包的路径以及先后顺序。

从上到下的搜索顺序依次先后。当前目录为/root,所以一个路径为当前目录。图中1 为当前目录,2为环境路径,3为python标准库的路径。

重点关注最后一个路径,这个路径是python标准库文件的路径,所有的安装的模块都放在该路径下。

模块安装

python安装模块可以使用3种方式:

1、模块包

下载模块包,进行解压,进入模块文件夹,执行:
       python setup.py install

2、 easy_install

easy_install moduel

3、pip 方式

pip install moduel

安装的本质就是在pip源中的模块下载到本地,然后搬运到标准库文件的路径下,即/usr/lib/python2.7/dist-packages路径下。
例如:安装一个已经装好的模块pillow,提示信息反馈

可以看到pillow模块已经安装到/uer/lib/python2.7/dist-packages路径下。

通过上面的介绍,能够走通python模块使用的整个流程。pip安装模块到路径下,import模块时去该路径寻找。大概流程示意如下:

python包安装和使用机制的更多相关文章

  1. python包安装

    python包安装: 一种是有网操作:pip install  包名:例子[pip install setuptools] 无网络服务器上操作: 先把包下载:传上去再安装[] 1.一种是   *.wh ...

  2. vs中python包安装教程

    vs安装python很简单,只需要在vs安装包中选择python就可以了,这里使用的python3.7: 如果有了解,都知道安装python包的指令:"pip install xxx&quo ...

  3. python包安装-centos7/windows

    1.修改pip源 临时使用: 可以在使用pip的时候在后面加上-i参数,指定pip源 eg: pip install scrapy -i https://pypi.tuna.tsinghua.edu. ...

  4. Python包安装及使用指南

    这里长期更新一些Python第三方包的安装教程,以及使用教程... Pygame 安装教程: Windows: 首先,查看已安装的Python版本:访问https://www.lfd.uci.edu/ ...

  5. Python包安装过程

    以下是paramiko-1.7.7.1的安装过程,可以看到整个过程分为步,第一步是build,就是拷贝源文件到build文件夹里, F:\VMFiles\tmpFiles\paramiko-1.7.7 ...

  6. 用pip命令把python包安装到指定目录

    sudo pip install transforms3d --target=/usr/local/lib/python2.7/site-packages pip install transforms ...

  7. python 包 安装 加速 pip anaconda

    使用 -i 参数指定源,豆瓣的很快: pip install web.py -i http://pypi.douban.com/simple anaconda: ~/.condarc channels ...

  8. [开发技巧]·如何让离线安装Python包

    [开发技巧]·如何让离线安装Python包 1.问题描述 PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI. ...

  9. Python环境安装及基本概念

    1.安装Python ①官网下载Python包安装 ②添加环境变量(新版Python包可直接添加环境变量) 手动添加环境变量:控制面板-系统-高级系统设置-环境变量-编辑Path添加python安装目 ...

随机推荐

  1. (译文)开始学习Webpack-应用TypeScript,配置热加载和Source Map

    项目初始化:采用TypeScript 我们的版本是: $ node --version v8.5.0 $ npm --version 5.5.1 npm版本升级了,因为npm最近带来了新特性,本地会生 ...

  2. JaveScript对象(JS知识点归纳七)

    1.JS中的对象表示的是一个具体的事物. a)静态的特征=>对象的属性 b)动态的行为=>对象的方法=>保存的值==>函数 2.对象的创建方式 a)构造函数的创建方式 ``` ...

  3. bzoj千题计划243:bzoj2325: [ZJOI2011]道馆之战

    http://www.lydsy.com/JudgeOnline/problem.php?id=2325 设线段树节点区间为[l,r] 每个节点维护sum[0/1][0/1]  从l的A/B区域到r的 ...

  4. javascript实现小鸟飞行轨迹

    javascript实现小鸟飞行轨迹 代码如下:

  5. JAVA_SE基础——33.this关键字的练习

    需求:使用java定义的一个人类,人具备 id ,name ,age 三个属性,还具备一个比较年龄的方法. 要求:必须要写上构造函数,构造函数也必须要使用上this关键字. class Person{ ...

  6. Python基础学习篇章二

    一. Python如何运行程序 1. 在交互模式下编写代码 最简单的运行Python程序的方法是在Python交互命令行中输入程序.当然有很多方法可以开始这样的命令行,比如IDE,系统终端.如果你已经 ...

  7. Mego(07) - 关系配置

    这个是本框架的重要功能,该关系就是指对象中的复杂对象或集合属性,该关系与EF中的关系是有区别的.EF中强调关系的成对出现,这是由于数据库关系的思想决定的.然而Mego更接近与对象化逻辑,我们只关心当前 ...

  8. 为什么 asnyc await 可以提高web程序的吞吐量

    (转网上一段话) Web程序天生就是多线程的,且web线程都是跑的线程池线程(使用线程池线程是为了避免不断创建.销毁线程所造成的资源成本浪费),而线程池线程可使用线程数量是一定的,尽管可以设置,但它还 ...

  9. TortoiseGit安装与使用

    公司的源码是在码云上,平时进行项目源码管理和团队开发都会使用到GIT,花了一天时间才将Git搞明白,这是一个工具,我在这里就简单说一下,其安装使用方法,也是对自己学习的总结;本文章适合于刚接触GIT的 ...

  10. Python之函数的进阶(带参数的装饰器)

    函数篇--装饰器二 带参数的装饰器 def outer(flag): def timer(func): def inner(*args,**kwargs): if flag: print('''执行函 ...