模块的认识

模块,用一砣代码实现了某个功能的代码集合。

类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块。

如:os 是系统相关的模块;file是文件操作相关的模块

模块分为三种:

  • 自定义模块
  • 内置模块
  • 第三方开源模块

自定义模块

1、定义模块

  

2、导入模块

Python之所以应用越来越广泛,在一定程度上也依赖于其为程序员提供了大量的模块以供使用,如果想要使用模块,则需要导入。导入模块有一下几种方法:

  1. 1 import module
  2. 2 from module.xx.xx import xx
  3. 3 from module.xx.xx import xx as rename
  4. 4 from module.xx.xx import *

导入模块其实就是告诉Python解释器去解释那个py文件

  • 导入一个py文件,解释器解释该py文件
  • 导入一个包,解释器解释该包下的 __init__.py 文件

那么问题来了,导入模块时是根据那个路径作为基准来进行的呢?即:sys.path

  1. 1 import sys
  2. 2 print sys.path

结果:

  1. 1 ['/home/zh/PycharmProjects/s12/day1', '/usr/local/lib/python2.7/dist-packages/setuptools-18.1-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/pip-7.1.0-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/Django-1.8.16-py2.7.egg', '/home/zh/PycharmProjects/s12', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']

如果我们要添加自己的搜索目录,有两种方法:

一是直接修改sys.path,添加要搜索的目录:

  1. >>> import sys
  2. >>> sys.path.append('/Users/zh/my_py_scripts')

这种方法是在运行时修改,运行结束后失效。

第二种方法是设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中。设置方式与设置Path环境变量类似。注意只需要添加你自己的搜索路径,Python自己本身的搜索路径不受影响。

通过os模块可以获取各种目录,例如:

  1. 1 import sys
  2. 2 import os
  3. 3
  4. 4 pre_path = os.path.abspath('../')
  5. 5 sys.path.append(pre_path)

第三方开源模块

1、下载安装

下载安装有两种方式:

方法一:利用源码安装

在 github.com 网站可以下载第三方库的源码(或者其它途径),得到源码之后,在本地安装。

一般情况,得到的码格式大概都是 zip 、 tar.zip、 tar.bz2 格式的压缩包。解压这些包,进入其文件夹,通常会看见一个 setup.py 的文件。如果是 Linux 或者 Mac(我是用 ubuntu,特别推荐哦),就在这里运行 shell,执行命令:

  1. Python setup.py install

如果用的是 windows,需要打开命令行模式,执行上述指令即可。

如此,就能把这个第三库安装到系统里。具体位置,要视操作系统和你当初安装 Python 环境时设置的路径而定。默认条件下,windows 是在 C:\Python2.7\Lib\site-packages,Linux 在 /usr/local/lib/python2.7/dist-packages(这个只是参考,不同发行版会有差别,具体请读者根据自己的操作系统,自己找找),Mac 在 /Library/Python/2.7/site-packages

有安装就要有卸载,卸载所安装的库非常简单,只需要到相应系统的 site-packages 目录,直接删掉库文件即卸载。

  1. 1 下载源码
  2. 2 解压源码
  3. 3 进入目录
  4. 4 编译源码 python setup.py build
  5. 5 安装源码 python setup.py install

注:在使用源码安装时,需要使用到gcc编译和python开发环境,所以,需要先执行:

  1. 1 yum install gcc
  2. 2 yum install python-devel
  3. 3
  4. 4 apt-get python-dev

安装成功后,模块会自动安装到 sys.path 中的某个目录中,如:

  1. 1 /usr/lib/python2.7/site-packages/

方法二:pip

用源码安装,不是我推荐的,我推荐的是用第三方库的管理工具安装。有一个网站,是专门用来存储第三方库的,所有在这个网站上的,都能用 pip 或者 easy_install 这种安装工具来安装。这个网站的地址:https://pypi.Python.org/pypi

首先,要安装 pip(Python 官方推荐这个,我当然要顺势了,所以,就只介绍并且后面也只使用这个工具)。如果读者跟我一样,用的是 ubuntu 或者其它某种 Linux,基本不用这个操作,在安装操作系统的时候已经默认把这个东西安装好了(这还不是用 ubuntu 的理由吗?)。如果因为什么原因,没有安装,可以使用如下方法:

  1. Debian and Ubuntu:
  2. sudo apt-get install Python-pip
  3. Fedora and CentOS:
  4. sudo yum install python-pip

当然,也可以这里下载文件get-pip.py,然后执行 Python get-pip.py 来安装。这个方法也适用于 windows。

pip 安装好了。如果要安装第三方库,只需要执行 pip install XXXXXX(XXXXXX 代表第三方库的名字)即可。

当第三方库安装完毕,接下来的使用就如同前面标准库一样。

2、导入模块

同自定义模块中导入的方式 

3、实例:安装第三方模块 paramiko

paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。

  1. # pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto
  2.  
  3. # 下载安装 pycrypto
  4. wget http://files.cnblogs.com/files/wupeiqi/pycrypto-2.6.1.tar.gz
  5. tar -xvf pycrypto-2.6.1.tar.gz
  6. cd pycrypto-2.6.1
  7. python setup.py build
  8. python setup.py install
  9.  
  10. # 进入python环境,导入Crypto检查是否安装成功
  11.  
  12. # 下载安装 paramiko
  13. wget http://files.cnblogs.com/files/wupeiqi/paramiko-1.10.1.tar.gz
  14. tar -xvf paramiko-1.10.1.tar.gz
  15. cd paramiko-1.10.1
  16. python setup.py build
  17. python setup.py install
  18.  
  19. # 进入python环境,导入paramiko检查是否安装成功

python基础知识8——模块1——自定义模块和第三方开源模块的更多相关文章

  1. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  2. python 基础知识(一)

    python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...

  3. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  4. Python 基础知识(一)

    1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...

  5. python基础知识的学习和理解

    参考链接:https://github.com/yanhualei/about_python/tree/master/python_learning/python_base   python基础知识笔 ...

  6. Python基础知识(六)------小数据池,集合,深浅拷贝

    Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: ​ 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : ​ 一个文 ...

  7. Python基础知识(五)------字典

    Python基础知识(四)------字典 字典 一丶什么是字典 ​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ​ 键: 必须是可哈希,(不可变的数据类型 ...

  8. Python基础知识总结笔记(四)函数

    Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程 ...

  9. Python基础知识详解 从入门到精通(七)类与对象

    本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...

随机推荐

  1. 【python】构造字典类型字典

    字典类型字典:就是包含字典类型的字典,如{'sss': {'ss': 'dddsdsdsd'}} 构造方式: a={} b="sss" a[b]={} a[b]['ss'] = & ...

  2. 承接Unity3D外包公司 — 技术分享

    Cardboard SDK for Unity的使用 上一篇文章作为系列的开篇,主要是讲了一些虚拟现实的技术和原理,本篇就会带领大家去看一看谷歌的Cardboard SDK for Unity,虽然目 ...

  3. 多个Python环境的构建:基于virtualenv 包

    假如一台计算中安装多个Python版本,而不同版本可能会pip安装不同的包,为了避免混乱,可以使用virtualenv包隔离各个Python环境,实现一个Python版本对应一套开发环境. 本地概况: ...

  4. 分配和释放 BSTR 的内存

    本文档已存档,并且将不进行维护. 分配和释放 BSTR 的内存 Visual Studio .NET 2003                  转自: https://msdn.microsoft. ...

  5. 安卓 JDK、SDK、ADT 区别

    问题一:android软件开发是用java语法,但是为什么开发环境还需要jdk,有android sdk不就可以了吗? 答: 我知道写字要用笔,但为什么还需要笔芯(墨水),有笔杆不就可以了吗? 问题二 ...

  6. nyoj 142, poj 1039 ,hdu 1454 管道问题

    http://acm.nyist.net/JudgeOnline/problem.php?pid=142 第一道解析几何问题,比较纠结,主要是几个解析几何的基本操作,包括求两线段的叉积,判断左右方向, ...

  7. 使用U盘安装win7系统

    --------------------------------------------------- 步骤1:制作可启动U盘(如果已经有可启动U盘则直接跳到步骤2) 1.下载系统镜像,请百度搜索“w ...

  8. 使用Visual Assistant X创建C程序注释模板

    本文将讲解C程序注释模板的使用背景.创建方法,并在结束时进行总结. 1.使用背景 在项目开发过程中,为方便组内其他成员能够快速学习自己编写的代码,需要对自己写的函数添加注释.在正规的软件开发流程中,一 ...

  9. <select> 标签使用

    jQuery获取Select选择的Text和Value: 1. var checkText=jQuery("#select_id").find("option:selec ...

  10. 修复HTTP 503错误

    要解决此问题,按照下列步骤操作: 1.验证是否已为虚拟服务器配置了应用程序池.默认的应用程序池是MSSharePointPortalAppPool. 请按照下列步骤来确定虚拟服务器正在使用的应用程序池 ...