1.模块代码放在nester.py中。模块有关的元数据放在setup.py中。
nester.py
"""这是nester.py模块,提供一个名为pint_lol()的函数,这个函数的作用是打印列表。这个列表中可以嵌入列表,也可以没有""" def print_lol(the_list): for element in the_list: if isinstance(element ,list): print_lol(element) else: print(element)
setup.py
from distutils.core import setup setup( name = 'nester', version = '1.0.0', py_modules= ['nester'], author = 'zxm', author_email = 'emon0408@163.com', url = 'http://blog.csdn.net/zhang_xiaomeng', description = 'A simple printer of nested lists', )
2.构建一个发布文件
windows下,打开cmd,转到nester.py的文件夹下:
输入命令:“D:\Program Files\Python\python.exe” setup.py sdist
注意:为什么在python.exe的路径上加引号呢?因为路径中有空格。
3.将发布安装到Python本地副本中。
输入命令:“D:\Program Files\Python\python.exe” setup.py install
3.导入模块并使用
import nester
cast = ['Plain','Cleese','Idle']
nester.print_lol(cast) Python中的所有代码都与一个命名空间关联。主Python(以及IDLE shell中)的代码与一个名为_main_的命名空间关联。将代码放在其单独的模块中时,Python会自动创建一个与模块同名的命名空间。所以,你的模块中的代码会与一个名为nester的命名空间关联。就像人的姓氏一样。
命名空间限定的格式如下:
首先是模块名,然后是一个点号,再后面是函数名。
如果使用from nester import print_lol,会把指定的函数(这里就是print_lol)增加到当前命名空间中,这样一来,就不必再使用命名空间限定。
注意:如果你的当前命名空间中已经定义了一个名为print_lol的函数,这个特定import语句会用导入的函数覆盖你自己定义的函数,而这可能并不是你原来期望的行为。