python入门笔记——模块的制作以及发布安装
被导入的试制作的测试模块:
# 试制作模块
__all__ = ['add','sub']
'''
__all__魔术方法的作用是:
限定其他文件用import...from *导入该模块的时候可使用的函数,不能使用未在[]里的函数
但如果用import ...导入的话则不会有影响
'''
def add(x,y):
return x + y
def printInfo():
print('这是一个测试函数')
pass
def sub(x,y):
return x - y
# 测试代码
'''
这里还有比较重要的一点,就是__main__魔术方法的部分功能
如果我们在这个文件中直接写有测试代码,那么在其他文件导入该模块的时候,会同时输出该模块测试代码的数据
例如:
'''
# print(add(5,6))# 如果直接存在该行代码,在其他文件导入该模块的时候,输出时会带上11
'''
这里涉及到一点,我们可以用下面的代码测试
'''
# print('add模块的__name__变量是:{}'.format(__name__))
'''
这里会有两个文件的分歧:
在该文件中的输出结果是__main__
而在导入该模块的文件的输出结果是modelTest
我们可以利用这一点,在所有的测试代码处前增加一个if
即可解决一个比较重要的问题:在导入其他模块的时候不会夹杂其他模块的代码结果
例子如下:
'''
if __name__ == '__main__':
print(add(5,6))
pass
导入的文件:
'''
模块的制作
python文件都可以作为一个模块,文件名即模块名
它以库的形式封装功能,可以让我们有逻辑地组织代码
它也可包含可执行的代码
'''
from modelTest.modelTest import *
add_result = add(1,2)
print(add_result)
# 当然,我们也同样可以用直接import的方式导入,用add_fuction.add()调用即可
'''
如何发布一个模块:
1.将写好的包放在一个目录下
2.在该目录下创建一个setup.py文件
在文件中写以下代码:
from distutils.core import setup
# name 模块名
# version 版本号
# description 描述
# auther 作者
# py_modules 要发布的内容
setup(name = 'modelTest',version = '1.0',description = '一个测试的模块',
author = 'my',py_modules = ['modelTest'])
3.创建模块
通过终端进入目录后执行命令:
python setup.py build
4.生成压缩包
继续执行下列命令:
python setup.py sdist
'''
# 完成后就可以把生成的后缀为.gz的压缩包发给别人了
# 接下来是模块的安装
'''
模块的安装步骤:
1.将压缩包解压,会生成一个文件夹
2.在pycharm的终端用pip即可安装
(这里也有其他的方法,暂且只说明了这种)
'''
setup.py文件:
from distutils.core import setup
'''
name 模块名
version 版本号
description 描述
auther 作者
py_modules 要发布的内容
'''
setup(name = 'modelTest',version = '1.0',description = '一个测试的模块',
author = 'my',py_modules = ['modelTest'])
发布模块时的部分结果截图: