zoukankan      html  css  js  c++  java
  • python基础知识8——模块1——自定义模块和第三方开源模块

    模块的认识 

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

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

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

    模块分为三种:

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

    自定义模块

    1、定义模块

      

    2、导入模块

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

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

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

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

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

    1 import sys
    2 print sys.path

    结果:

    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,添加要搜索的目录:

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

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

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


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

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

    第三方开源模块

    1、下载安装

    下载安装有两种方式:

    方法一:利用源码安装

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

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

    Python setup.py install

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

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

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

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

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

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

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

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

    方法二:pip

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

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

    Debian and Ubuntu:
    sudo apt-get install Python-pip
    Fedora and CentOS: 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检查是否安装成功
  • 相关阅读:
    树莓派相关知识
    yum mysql 需要:libsasl2.so.2()(64bit)的解决办法
    python 虚拟环境
    pip 查看某个包有哪些版本并升级
    C# DiagnosticSource and DiagnosticListener
    C# IObservable与IObserver观察者模式
    Visual Studio编译正常,但仍显示红线(Visual studio compiles fine but still shows red lines)
    查看PDB Guid 工具 dumpbin.exe 路径
    VMware vSphere 7.0 安装教程
    gacutil.exe 文件路径
  • 原文地址:https://www.cnblogs.com/zhenghaonihao/p/6227453.html
Copyright © 2011-2022 走看看