模块分类
内置模块 执行help('modules') 查看所有python自带模块列表
第三方开源模块 可以通过pip install 模块名 联网安装
自定义模块
模块调用
import module
from module import xx
from module.xx.xx import xx as rename
from module.xx.xx import *
模块查找路径import sys
print(sys,path)
开源模块的安装使用
https://pypi.python.org/pypi 是python的一个开源模块库
1.直接在上面店download 下载后 解压并进入目录
编译源码 python setup.py build
安装源码 python setup.pu install
2 直接通过pip安装
pip3 install parmiko #parmiko 是模块名
pip3 命令会自动下载模块包并完成安装
软件一般自动安装你python安装目录这个子目录里
/your_python_install_path/3.6/lib/python3.6/site-packages
下载后直接导入就可以 跟自带的模块调用方法一样
使用 演示一个连接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.exex_command('df')
print(stdout.read())
ssh.closs()
执行命令 - 通过用户名和密码连接服务器
包(Package)
当你的模块文越来越多,就需要对模块文件进行划分,比如把负责跟数据库交互的都放一个文件夹,把与页面交互相关的放一个文件夹
my_proj
crm
admin.py
view.py
manage.py
my_proj
setting.py
urls.py
wsgi.py
像上面这样 一个文件夹管理多个模块文件 这个文件夹就被称为包
那不同包之间模块相互导入呢?
python2 中包文件夹下必须存在__init__.py 文件 该文件内容可以为空 用于标识文件夹为空
python3 中即使目录下没__init__.py 文件也能创建成功
crm/view.py 中添加环境变量
import sys os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))) #__file__的打印当前被执行模块.py文件相对路径
sys.path.append(BASE_DIR)
绝对导入&相对导入
虽然python支持相对导入 但对模块的路径关系要求比较严格 处不当就容易出错 so并不建议在项目里经常使用
常用内置模块 略
软件开发目录规范 略