模块化编程有如下几个重要优势:
模块化编程的一般流程:
import 语句导入
import 语句的基本语法格式如下:
import模块名 #导入一个模块 import模块 1,模块 2… #导入多个模块 import 模块名 as 模块别名
导入模块并使用新名字
import 加载的模块分为四个通用类别:
a. 使用 python 编写的代码(.py 文件);
b. 已被编译为共享库或 DLL 的 C 或 C++扩展;
c. 包好一组模块的包
d. 使用 C 编写并链接到 python 解释器的内置模块;
Python 中可以使用 from…import 导入模块中的成员。基本语法格式如下:
from 模块名 import 成员 1,成员 2,…
import importlib a = importlib.import_module("math") print(a.pi)
注:一个模块无论导入多少次,这个模块在整个解释器进程内有且仅有一个实例对象。
在 pycharm 开发环境中创建包,非常简单。在要创建包的地方单击右键:New–>Python package 即可。pycharm 会自动帮助我们生成带有__init__.py 文件的包。
当我们导入某个模块文件时, Python 解释器去哪里找这个文件呢?只有找到这个文件才能读取、装载运行该模块文件。它一般按照如下路径寻找模块文件(按照顺序寻找,找到即停不继续往下寻找):
import sys sys.path.append("d:/") print(sys.path)
当我们完成了某个模块开发后,可以将他对外发布,其他开发者也可以以“第三方扩展库”的方式使用我们的模块。我们按照如下步骤即可实现模块的发布:
为模块文件创建如下结构的文件夹(一般,文件夹的名字和模块的名字一样):
在文件夹中创建一个名为『setup.py』的文件,内容如下:
from distutils.core import setup setup( name='baizhanMath2',# 对外我们模块的名字 version='1.0', # 版本号 description='这是第一个对外发布的模块,测试哦',#描述 author='gaoqi', # 作者 author_email='gaoqi110@163.com', py_modules=['baizhanMath2.demo1','baizhanMath2.demo2'] # 要发布的模块 )
将发布安装到你的本地计算机上。仍在 cmd 命令行模式下操作,进 setup.py 所在目录,键入命令:
python setup.py install
安装成功后,我们进入 python 目录/Lib/site-packages 目录(第三方模块都安装的这里,python 解释器执行时也会搜索这个路径)
安装成功后,直接使用 import 导入即可。
import baizhanMath2.demo1
将自己开发好的模块上传到 PyPI 网站上,将成为公开的资源,可以让全球用户自由使用。按照如下步骤做,很容易就实现上传模块操作。
注册 PyPI 网站
·创建用户信息文件.pypirc
使用文件(适用 windows,Linux)
在用户的家目录里创建一个文件名为.pypirc, 内容为:
[distutils] index-servers=pypi [pypi] repository = https://upload.pypi.org/legacy/ username = 账户名 password = 你自己的密码
【注】
Linux 的家目录: ~/.pypirc
Windows 的家目录是: c:/user/用户名
在 windows 下直接创建不包含文件名的文件会失败,因此创建时文件名为“.pypirc.”,前后都有两个点即可。
上传并远程发布
进入 setup.py 文件所在目录,使用命令“python setup.py sdist upload”,即可以
将模块代码上传并发布
管理你的模块
我们登录 pypi 官网,可以看到:
如果你的模块已经上传成功,那么当你登录 PyPI 网站后应该能在右侧导航栏看到管理入口。
让别人使用你的模块
模块发布完成后,其他人只需要使用 pip 就可以安装你的模块文件。比如:
pip install package-name