一、Python模块的发布
我们在导包的时候经常会出现包不存在的问题。那么首先要清楚什么是包,先理解下这个概念。其实包就是一个文件夹,用来放置相关联的模块,但是这个文件夹与一般我们指的文件夹有点区别,在这个文件夹下会有一个__init__.py文件,在Python2中如果没有__init__.py文件,那么导包的时候直接报错,但在Python3中没有__init__.py文件可以正常导包,但是无法调用包下的模块。所以现在也可以说,一个文件夹下有__init__.py文件就称为包。一般在__init__.py文件中用下面代码控制导入模块的名称。
__all__["想让别人调用的函数名称"]
如果写了这句话,那么import时只能导入列表中有的模块,其它不在这个列表中的函数名称则无法导入。
模块的发布过程:
1.在包目录路径下创建一个setup.py文件(这个文件与包在同一级目录下)。
2.在文件setup.py文件中写入下面代码:
from distutils.core import setup setup(name="gwp",version="1.0",description="gwp's module",author="gwp",py_modules=["TestMeg.test_01","TestMeg.test_02","TestMeg.test_03","TestMeg.test_04"])
这段代码中主要注意py_modules这个字段,这是一个列表,列表中是:包名.模块名称 就是你要发布的模块。其它的都是些名称版本模块的描述等信息。
3.执行
python3 setup.py build python3 setup.py sdist
这样就完成了模块的发布,接下来再dist文件夹下可以看到一个压缩包,这个压缩包就是发布的模块。下面进行安装
二、模块的安装
python3 setup.py install
现在你可以在任何路径下来*import 你发布的包名*
,发现都不会报错。其实现在已经把模块安装到了系统中,所以可以到处访问。(其实相当于安装一个matplotlib这样一个模块一样的原理).