Python构建发布

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 = '[email protected]',
    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

Python构建发布_第1张图片

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

 

 

你可能感兴趣的:(Python基础语法)