Python学习笔记--发布程序

对于已经做好的函数,可以将函数定义在一个.py文件内,并将安装信息写入到setup.py文件内,比如:

首先命名一个文件夹nester并将函数文件nester.py和setup.py放在文件内

nester.py 定义了一个迭代写list内容的函数:

"""This is neil's first lists print"""

def print_lol(the_list,flag=True,level=0):
    """the_list is any Python list"""
    for each_item in the_list:
        if(isinstance(each_item,list)):
            print_lol(each_item,flag,level+1)
        else:
            if flag:
                for tab_depth in range(level):
                    print("\t",end='')
            print(each_item)


 

setup.py为安装信息:

from distutils.core import setup

setup(
        name        = 'nester',
        version     = '1.2.0',
        py_modules  = ['nester'],
        author      = 'neil',
        author_email= 'gjy2014@126.com',
        description = 'A simple printer of nested lists',
    )


文件都放置好后,在nester文件夹下利用命令C:\Python33\python.exe setup.py sdist(这里是windows环境)来构建发布文件

running sdist
running check
warning: check: missing required meta-data: url

warning: sdist: manifest template 'MANIFEST.in' does not exist (using default fi
le list)

warning: sdist: standard file not found: should have one of README, README.txt

writing manifest file 'MANIFEST'
creating nester-1.2.0
making hard links in nester-1.2.0...
hard linking nester.py -> nester-1.2.0
hard linking setup.py -> nester-1.2.0
creating 'dist\nester-1.2.0.zip' and adding 'nester-1.2.0' to it
adding 'nester-1.2.0\nester.py'
adding 'nester-1.2.0\PKG-INFO'
adding 'nester-1.2.0\setup.py'

然后将发布文件安装到本地副本中,经过这个过程就可以import 命名空间直接调用已经安装好的函数:命令为C:\Python33\python.exe setup.py install,会产生如下信息


 

running install
running build
running build_py
copying nester.py -> build\lib
running install_lib
copying build\lib\nester.py -> C:\Python33\Lib\site-packages
byte-compiling C:\Python33\Lib\site-packages\nester.py to nester.cpython-33.pyc
running install_egg_info
Removing C:\Python33\Lib\site-packages\nester-1.2.0-py3.3.egg-info
Writing C:\Python33\Lib\site-packages\nester-1.2.0-py3.3.egg-info


这样在Python shell IDLE模式下测试下:

>>> import nester
>>> test = ["a",["b","c"]]
>>> nester.print_lol(test)
a
	b
	c
>>> nester.print_lol(test,False)
a
b
c

这里要注意的是,如果要是改动了函数内容,需要重新sdist  和install 并且要重新打开shell 进行import才会得到改变的结果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值