什么是模块?
类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块。
一般模块分为:
- 自定义模块
- 内置模块
- 开源模块
为何要使用模块?
如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。
随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用,
模块的导入
模块的四种导入形式:
import module
from module.** import **
from module.** import *** as **
导入模块其实就是告诉Python解释器去解释那个py文件
- 导入一个py文件,解释器解释该py文件
- 导入一个包,解释器解释该包下的 __init__.py 文件
导入模块时是根据那个路径作为基准来进行的呢?即:sys.path
import sys print(sys.path)
['D:\python_study\python_text\模块\模块导入', 'D:\python_study', 'D:\python_study\venv\Scripts\python37.zip', 'D:\python\python3.7\DLLs', 'D:\python\python3.7\lib', 'D:\python\python3.7', 'D:\python_study\venv', 'D:\python_study\venv\lib\site-packages', 'D:\python_study\venv\lib\site-packages\setuptools-39.1.0-py3.7.egg', 'D:\python_study\venv\lib\site-packages\pip-10.0.1-py3.7.egg', 'D:\pycharm\helpers\pycharm_matplotlib_backend', 'D:\python_study\python_text\模块\模块导入']
sys.path是一个列表,当你导入一个模块后,会默认从列表中的路径去依次查找,如果你要导入的模块的路径不在列表中,可以使用,sys.path.add()去添加
import sys, os sys.path.append(os.path.dirname(__file__)) # 这里是现在正在使用的文件的目录的路径加入到环境变量中了
当然,我们开发的程序不可能只在本地使用,那么当你的程序发布到网上,别人下载使用时,怎么能确定导入的自定义模块的路径还能是正确的呢,这里我们就要用到绝对路径了
import sys, os sys.path.add(os.path.dirname(os.path.abspath(__file__)) # 这里是现在正在使用的文件的目录的绝对路径加入到环境变量中了
开源模块
一、下载安装
下载安装有两种方式:
yum pip apt-get ...
下载源码
解压源码
进入目录
编译源码 python setup.py build
安装源码 python setup.py install
二、导入模块
同自定义模块中导入的方式
三、模块 paramiko
paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实
pip3 install paramiko
linux 下
# pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto # 下载安装 pycrypto wget https://files.cnblogs.com/files/wupeiqi/pycrypto-2.6.1.tar.gz tar -xvf pycrypto-2.6.1.tar.gz cd pycrypto-2.6.1 python setup.py build python setup.py install # 进入python环境,导入Crypto检查是否安装成功 # 下载安装 paramiko wget https://files.cnblogs.com/files/wupeiqi/paramiko-1.10.1.tar.gz tar -xvf paramiko-1.10.1.tar.gz cd paramiko-1.10.1 python setup.py build python setup.py install # 进入python环境,导入paramiko检查是否安装成功