之前我们解决问题的时候,遇到复杂的问题,可能会导入python 的工具箱,这就是python里面自带的内置模块,其实python工具箱有好几百个,可以通过help('moudles')查看,得到的是python自带的和再第三方工具箱下载的,但是比如另一个人编写的模块我拿过来也能用,但是help('moudles')就不会显示出来。补充:查看的时候不用管下划线的部分,

使用模块有什么好处?

最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。

可重用。

使用模块还可以避免函数名和变量名冲突。每个模块有独立的命名空间,因此相同名字的函数和变量完全可以分别存在不同的模块中,所以,我们自己在编写模块时,不必考虑名字会与其他模块冲突

模块分类

模块分为三种:

内置标准模块(又称标准库,安装好python的时候自带的一个模块)执行help('modules')查看所有python自带模块列表

第三方开源模块,可通过pip install 模块名 联网安装

自定义模块

不管上面那种模块,调用都用import

模块调用

import module

from module import xx

from module.xx.xx import xx as rename

from module.xx.xx import *

#不推荐使用,带*意思是全部

例子:

import random

from os import rmdir

#可以理解成,os是工具箱里的一个小工具箱,rmdir是os里的一个更小的工具箱,可以导入一个,也可以导入多个

#from os import rmdir, rename

from django.core import handles

#解释为,django是创建的一个目录,core是django下的子目录,handles是core下的子目录,而handles里的文件才是py文件

import multiprocessing #这个模块名较长,可以用as rename

import multiprocessing as mul #直接调用mul就行,和上面的效果是一样的

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

自定义模块

首先创建一个文件夹,并创建一个py文件,即模块

再交互器下导入模块

模块查找路径

并没有找到这个模块,这是因为路径的问题,python要找模块的时候,有一个范围,就是sys.path, 交互器上输入命令就会出现一个包括他范围的列表

其中,第一个 ' ' 是当前目录,回默认从当前目录找,如果有就不找了,如果没有就继续往后走,找完都没有就会报错,

第二个zip一行是python安装包的内容,第三个lib一行是python下放c语言库的东西,其实前几个我们几乎用不到,都是python自带的,因为python使用c写的,他们互相之间有一些调用关系。

而最后一行,site-packages是所有的标准库,包括第三方的和内置的都会放在这个文件

上面这些都是python默认的,自己也可以往进加东西,

也可以删除刚才加进去的,但是已经导入成功了,就不会重新导入,还是刚才的那个

要注意的是,加进去的只是再当前程序内的运行过程中有效,如果退出了,还是会没有

开源模块

https://pypi.python.org/pypi 是python的开源模块库,截止2017年9.30日 ,已经收录了118170个来自全世界python开发者贡献的模块,几乎涵盖了你想用python做的任何事情。 事实上每个python开发者,只要注册一个账号就可以往这个平台上传你自己的模块,这样全世界的开发者都可以容易的下载并使用你的模块。

那如何从这个平台上下载代码呢?

1.直接在上面这个页面上点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();

执行命令 - 通过用户名和密码连接服务器

包(Package)

当你的模块文件越来越多,就需要对模块文件进行划分,比如微信,假如有500个文件,就需要划分开,哪些是负责朋友圈的,哪些是支付功能的,再比如把负责跟数据库交互的都放一个文件夹,把与页面交互相关的放一个文件夹,

└── my_proj

├── crm #代码目录

│ ├── admin.py

│ ├── apps.py

│ ├── models.py

│ ├── tests.py

│ └── views.py

├── manage.py

└── my_proj #配置文件目录

├── settings.py

├── urls.py

└── wsgi.py

像上面这样,一个文件夹管理多个模块文件,这个文件夹就被称为包

那不同包之间的模块互相导入呢?

crm/views.py内容

def sayhi():

print('hello world!')

通过manage.py调用

from crm import views

views.sayhi()

包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__int__.py用于标识当前文件夹是一个包。

python modules_python—模块-相关推荐

  1. Python Re 模块超全解读!详细

    内行必看!Python Re 模块超全解读! 2019.08.08 18:59:45字数 953阅读 121 re模块下的函数 compile(pattern):创建模式对象 > import ...

  2. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  3. 关于使用python logging模块的几点总结

    关于使用python logging模块的几点总结 使用python的标准日志模块logging可以非常方便地记录日志.Python日志系统非常丰富.添加结构化或非结构化日志输出到python代码,写 ...

  4. python高级-模块(14)

    一.python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include <math.h>引入math.h这个头文件,否则是无法正常进行调用的. ...

  5. 转载: Python os 模块的功能以及子函数介绍

    原文链接: python之os模块 - 程序生(Codey) - 博客园 https://www.cnblogs.com/cxscode/p/8085326.html 一.Python OS模块介绍 ...

  6. 简单介绍python process模块

    在python中大部分情况需要使用多进程,python提供了multiprocessing模块.multiprocessing模块的功能众多:支持子进程.通信和共享数据.执行不同形式的同步,提供了Pr ...

  7. python io模块_python中的StringIO模块

    原博文 2015-10-23 15:21 − # python中的StringIO模块 标签:python StringIO --- > 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的, ...

  8. python正则表达式需要模块_使用Python正则表达式模块,让操作更加简单

    处理文本数据的一个主要任务就是创建许多以文本为基础的特性. 人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码. 虽然想要实现上述功能听起来很繁琐,但是如 ...

  9. python导入模块有同名_Python:导入与函数同名的模块

    背景:第一次在SE上提问.我在 Python方面还很陌生,而且在编程方面也不是很有经验.我已经四处寻找,但我没有找到这个问题的答案,我非常感谢你的帮助. 我的问题是:如何导入与函数同名的模块? 具体来 ...

  10. python第三方模块—psutil模块

    系统基础信息采集模块作为监控模块的重要组成部分,能够帮助运维人员了解当前系统的健康程度,同时也是衡量业务的服务质量的依据,比如系统资源吃紧,会直接影响业务的服务质量及用户体验,另外获取设备的流量信息, ...

最新文章

  1. Activity启动流程图
  2. 深入java_深入Java Final
  3. 互联网1分钟 | 0214 2018 年超1/3的婚姻由约会交友类App促成;刘强东新开设 “南京京东云计算有限公司”...
  4. idea中git分支的使用
  5. 关于反射Assembly.Load(程序集).CreateInstance(命名空间.类)
  6. SkyEye——汽车电子系统仿真测试工具
  7. FCLK、HCLK、PCLK
  8. [android]netd与NetworkManagementService初印象
  9. 基于Easy CHM和VS的帮助文档制作
  10. 网络协议之NAT穿透原理
  11. Java算法中O(1),O(logn),O(n),O(nlogn),O(n2)是什么
  12. CSDN博客第一期云计算最佳博主评选
  13. maven PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable
  14. JVM学习 -- JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解
  15. 2021年全国大学生电子设计大赛(一)赛题解析与预测
  16. JavaWeb是什么?如何学习JavaWeb的体系
  17. 攻防世界逆向高手题之re2-cpp-is-awesome
  18. 程序员能力提升——7-2-1法则,让知识转化为职业竞争力
  19. 《AutoCAD 2014中文版实用教程》导读
  20. Oracle如何彻底删除

热门文章

  1. 算法面试题(数据结构)
  2. android layout_width 代码,关于LinearLayout设置权重后width或height不设置0dp的影响说明...
  3. magento 客户表相关_第9章 相关性分析
  4. VisualVM安装,插件安装,各个面板信息讲解
  5. mysql redis binlog_基于binlog的canal到redis的同步
  6. 分段路由_如何理解段路由(SPRING)?—Vecloud微云
  7. linux 系统tty、pty和pts 的概念及区别
  8. Golang gRPC实践 连载五 拦截器 Interceptor
  9. 云智慧悄然“变身”业务运维,到底发生了什么?
  10. NDK开发基础④增量更新之客户端合并差分包