Python构建发布

xiaoxiao2021-02-27  426

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语句会用导入的函数覆盖你自己定义的函数,而这可能并不是你原来期望的行为。

 

 

转载请注明原文地址: https://www.6miu.com/read-1064.html

最新回复(0)