模块:一个.py文件就是一个模块
好处:1.提高可维护;2.可重用;3.避免函数名,变量名冲突
分类:1.内置模块;2.第三方模块;3.自定义模块; (help('modules')可查看所有得内置和第三方模块)
---------------------------------------------------------------
1.导入模块
import random / import os
from os import rmdir,rename
from djano.core import handlers / from djano.core.handlers import wsgi
import multiprocessing as mul
from socket import * #全部存在dir()下 不介意这么做 名字会重名
模块一旦被导入,即相当于执行了一个.py文件里得代码
导入模块,寻找路径:1.当前目录;2.系统目录(内置和第三方得模块)(sys.path)Python36\lib\site-packages:
2.第三方模块安装
https://pypi.python.org/pypi #python得开源模块库
2.1.源码安装:
python setup.py build
python setup.py install
2.2.联网安装
pip3 install ***
pip3 uninstall ***
2.3.国内镜像豆瓣安装
pip3 install -i http://pypi.douban.com/simple/*** --trusted-host pypi.douban.com
3.包
一个文件夹下有多个.py文件,加上__init__空文件,这个文件夹就是一个包了
3.1.跨模块导入 同一目录下面
from crm import say
3.2.跨模块得导入 不同目录下面
入口程序得目录加载到sys.path即环境变量中,就可以跨模块调用了
import sys,os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
from proj import hello
3.3.跨模块导入 相对路径
from . import a
from ..proj import hello
注意:
python使用. .. 相对导入模块要满足两个条件:
1.文件夹中必须有__init__.py文件,该文件可以为空,但必须要有
2.不能作为顶层模块来执行该文件夹中得py文件(即不能作为主函数得入口)
意思:..后不能到主函数入口得目录下