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. Tram

    Tram 题目大意:给你一个图,这个图上有n点和边.点上有开关,开关开始指向一条道路,拨动开关可以使开关指向由开关出发的任意一条路径,读入,a,b,求,至少要拨动几次才能从a点走到b点. 注释:n&l ...

  2. Jmeter 后置处理器 BeanShell_PostProcessor 适用思考

    首先摘抄一段官方文档的话: The following BeanShell variables are set up for use by the script: log - (Logger) - c ...

  3. js网页判断移动终端浏览器版本信息是安卓还是苹果ios,判断在微信浏览器跳转不同页面,生成二维码

    一个二维码,扫描进入网页,自动识别下载苹果和安卓客户端,判断网页如下,(只有苹果的微信不能自动跳转)所以加个微信判断. <!DOCTYPE html> <html> <h ...

  4. [福大软工] W班 总成绩排行榜

    评分链接 作业1   作业2    作业3    作业4 总分排名

  5. alpha冲刺总结随笔

    前言:前面乱乱糟糟整了一路,到最后终于可以稳定下来了.安安心心做个总结,然后把之后要做的事情都理清楚好了. 新学长似乎是个正经[并不]大腿. 看起来也不用都是一个人或者跟陈华学长两个人对半开了[突然摸 ...

  6. python第三方库requests详解

    Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTT ...

  7. java unicode和字符串间的转换

    package ykxw.web.jyf; /** * Created by jyf on 2017/5/16. */ public class unicode { public static voi ...

  8. es6对象字面量增强

    相对于ES5,ES6的对象字面量得到了很大程度的增强.这些改进我们可以输入更少的代码同时语法更易于理解.那就一起来看看对象增强的功能.对象字面量简写(Object Literal Shorthand) ...

  9. pythoncharm 中解决启动server时出现 “django.core.exceptions.ImproperlyConfigured: Requested setting DEBUG, but settings are not configured”的错误

    背景介绍 最近,尝试着用pythoncharm 这个All-star IDE来搞一搞Django,于是乎,下载专业版,PJ等等一系列操作之后,终于得偿所愿.可以开工了. 错误 在园子里找了一篇初学者的 ...

  10. APP手机端加载不到资源服务器后台解决参考

    今天发现app登录时,报could not get resource,日志中打印的是redis相关的错误,于是开始一步步检查错误! 后台架构:redis+mysql+elk+tomcat+zookee ...