• 2.4 Python 模块的使用&安装&导入


    什么是模块

    在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。

    为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。

    在Python中,一个.py文件就称之为一个模块(Module)

     模块的好处

    1. 可维护性。
    2. 可重用
    3. 避免函数名和变量名冲突。每个模块有独立的命名空间,因此相同名字的函数和变量完全可以分别存在不同的模块中

    模块分类

    模块分为三种:

    • 内置标准模块(又称标准库)执行help('modules')查看所有python自带模块列表
    • 第三方开源模块,可通过pip install 模块名 联网安装
    • 自定义模块

    模块调用

    import module
    
    from module import xx
    
    from module.xx.xx import xx as rename  
    
    from module.xx.xx import *

    注意:模块一旦被调用,即相当于执行了另外一个py文件里的代码


    自定义模块

    创建一个.py文件,就可以称之为模块,就可以在另外一个程序里导入


    模块查找路径

    
    

    >>> import sys
    >>> print(sys.path)
    ['', 'C:\Users\yuxin\AppData\Local\Programs\Python\Python36\Lib\idlelib', 'C:\Users\yuxin\AppData\Local\Programs\Python\Python36\python36.zip', 'C:\Users\yuxin\AppData\Local\Programs\Python\Python36\DLLs', 'C:\Users\yuxin\AppData\Local\Programs\Python\Python36\lib', 'C:\Users\yuxin\AppData\Local\Programs\Python\Python36', 'C:\Users\yuxin\AppData\Local\Programs\Python\Python36\lib\site-packages']

     

    python解释器会按照列表顺序去依次到每个目录下去匹配你要导入的模块名,只要在一个目录下匹配到了该模块名,就立刻导入,不再继续往后找

    注意:列表第一个元素为空,即代表当前目录(程序入口程序所在目录),所以你自己定义的模块在当前目录会被优先导入


     

    开源模块安装、使用 

    https://pypi.org/

    收录了来自全世界python开发者贡献的模块,几乎涵盖了你想用python做的任何事情。 事实上每个python开发者,只要注册一个账号就可以往这个平台上传你自己的模块,这样全世界的开发者都可以容易的下载并使用你的模块。

    源码安装:

     直接在上面这个页面上点download,下载后,解压并进入目录,执行以下命令完成安装

    编译源码    python setup.py build
    安装源码    python setup.py install

    直接通过pip安装

    pip3 install paramiko #paramiko 是模块名

    pip命令会自动下载模块包并完成安装。

    软件一般会被自动安装你python安装目录的这个子目录里

    /your_python_install_path/3.6/lib/python3.6/site-packages

    pip命令默认会连接在国外的python官方服务器下载,速度比较慢,你还可以使用国内的豆瓣源,数据会定期同步国外官网,速度快好多

    sudo pip install -i http://pypi.douban.com/simple/ alex_sayhi --trusted-host pypi.douban.com   #alex_sayhi是模块名

    使用

    下载后,直接导入使用就可以,跟自带的模块调用方法无差,演示一个连接linux执行命令的模块

    #coding:utf-8
    
    import paramiko
    
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect('192.168.1.108', 22, 'alex', '123')
    
    stdin, stdout, stderr = ssh.exec_command('df')
    print(stdout.read())
    ssh.close();
    
    执行命令 - 通过用户名和密码连接服务器
  • 相关阅读:
    摊还分析
    web端手机方向传感器闲谈
    研一一年论文总结(下)
    Jupyter自定义设置详解
    HAProxy实现动静分离和负载均衡
    欧拉项目 323题
    mysql基本操作
    以后的IT路还很长(1)
    【翻译】在Ext JS集成第三方库
    吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring IoC容器BeanFactory和ApplicationContext
  • 原文地址:https://www.cnblogs.com/devopsxin/p/9472894.html
Copyright © 2020-2023  润新知