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. Android开发之dip, dp, px, sp区别

    显示单位px和dip以及sp的区别 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和Q ...

  2. c字符数组

    一.PTA实验作业 题目1:统计一行文本的单词个数 1. 本题PTA提交列表 2. 设计思路 定义一个长度为1000的字符数组str[1000] 在定义 i=0,cnt=0:cnt用来记录单词的个数 ...

  3. sql with as 用法-Z

    以下内容转自:http:.com/ 一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个 ...

  4. 敏捷冲刺每日报告——Day4

    1.情况简述 Alpha阶段第一次Scrum Meeting 敏捷开发起止时间 2017.10.28 00:00 -- 2017.10.29 00:00 讨论时间地点 2017.10.28晚9:30, ...

  5. Error contacting service. It is probably not running.

    平台:centos-6.3-i386 jdk-7u51 storm 0.9.1 python 2.6.6   hadoop 1.2.1 运行zookeeperd后显示启动成功: JMX enabled ...

  6. Flask Session 详解

    会话session ,允许你在不同请求 之间储存信息.这个对象相当于用密钥签名加密的 cookie ,即用户可以查看你的 cookie ,但是如果没有密钥就无法修改它. from flask impo ...

  7. 几种Java的JSON解析库速度对比

    java中哪个JSON库的解析速度是最快的? JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考 了.我们很少会去 ...

  8. [Cerc2013]Magical GCD

    https://vjudge.net/problem/UVA-1642 题意:在一个序列中,找出一段连续的序列,使得长度*gcd最大 固定右端点,当左端点从左向右移动时,gcd不变或变大 gcd相同时 ...

  9. style scoped

    scoped: 只在父div和其内容内生效,

  10. JAVA_SE基础——59.权限访问修饰符

    了解了包的概念,就可以系统的介绍Java中的访问控制级别.在Java中,针对类.成员方法和属性提供了四种访问级别,分别是private.default.protected和public. 权限访问修饰 ...