我学python (4)---- 一个32岁销售python自学之路

   这一课的重点: 学习构建包,发布包在你的本地, 以及测试你的包。


    知识点: ( 在解决的时候,发现的问题都以知识点的形式记载下来)。

 

     1,字典

     2.   pyc ,dist文件夹,egg-info, 

     3,python sdist命令 

     

     节点一: 如何制作安装包

     1.1 构建包

          之前的笔记中,我们已经说了setuptools这个工具以及要用到setup.py, 以及printlist.py,安装的时候,需要先建立项目包的文件夹名字。

         我们建立文件夹:printlist

         setup.py 代码:

    

__author__ = 'lixiang'
try:
    from setuptools import setup
except ImportError:
    from distutils.core import  setup

config = {
    'name' :'printlist',
    'version' : '1.0.0',
    'py_moudle' :['printlist'],
    'author' :'lixiang',
    'author_mail': '3qfriend@gmail.com',
    'url' : "http://www.1b98.com"
}

setup(**config)

      printlist.py 代码:

  

# -*- coding: utf-8 -*-
__author__ = 'lixiang'

def printlist(move):
    for each_item in move:
        if isinstance(each_item,list):
            printlist(each_item)
        else:
            print(each_item)


if __name__ == '__main__':
    move = ['大话西游 ',['鹿鼎记1','鹿鼎记2'],[['黄飞鸿1'],['黄飞鸿2']] ]
    printlist(move)

 注意,在setup.py 我出现了一个错误, 就是运行 python setup.py  sdist . 发现了  name is not defined .

            原因是因为字典中的参数,'name',  我没有带引号, 这样是不标准的,就是字典的语法错了,想起了以前课程还有

 config[ 1 ] = 'wow' 知识点。

    接着这个知识点,我复习了一下:

     

config={}
config[1] ='wow'
config['1']='w1w'
config[name] = 'w2w'
config['name']='w3w'
config['name']='w4w'
发现了, 字典健, 如果是字符,必须用'' ,  另外健只能有一个,就是说重现定义健,就会更新掉, 而值可以有多个。 好,记得了,name必须用符号。


 好了运行命令: python setup.py  sdist , 好,ok了, 生成包了,你会发现比原来文件夹多了东西。


dist文件夹, 里面有gz格式的printlist包,

build文件夹: 里面还有个文件夹,没有其他的东西

printlist.egg-info,  里面有些信息

printlist.pyc (编译的文件)

 

 1.2 本地安装包

python  setup.py  install


     1,  安装以后本地文件夹没有撒变化.

     2,   看看python,这边

   

import printlist
help(printlist)


NAME

    printlist - # -*- coding: utf-8 -*-


FILE

    /Users/lixiang/PycharmProjects/python276/printlist/printlist.py


FUNCTIONS

    printlist(move)


DATA

    __author__ = 'lixiang'


AUTHOR

    lixiang


看到了吗,说明是根据setup自动说明的,在看看。


  这个时候, 我突然想到怎么制作终端命令,比如你看看,pip,可以在终端运行, 我的包呢?   当然不行,什么时候你的程序可以进usr/bin/local  , 撒时候就可以了。


 第二节: 自动化测试

       看我博客的人,交代我一下,我是先看learn python the hard way,其实忘记了差不多了,不够深入,所以第二本书,head first python 刚读,帮我复习, 这些双修学习。

       两本一起看,learn python the hard way 到了自动化测试这一章了。head frist到了,第一章。


     回到课本, 作者在里面建立的项目骨架, 跟目前我们的工作文件夹环境不一样的, 到底怎么办?

     不清楚,暂时搁置,不管这个,先看自动化测试, 其实这个就是第三方包,nose

      有什么作用?

       还记得我们上面的程序吗, 你怎么去测试printlist.py 是对的呢? 如果这个程序很多,是不是我们不停的去python ide 环境里测试, 这里有个自动化工具,可以免除你这样的困惑,我们要学会的,就是怎么使用它,以及课程后面的一个习题。


      先到这里了。  


       读书也不能太狠


   








展开阅读全文

没有更多推荐了,返回首页