gacvd 发表于 2017-5-5 12:03:56

Learn Python The Hard Way学习(46)

下面学习怎么创建一个好的项目框架,基本的框架包括项目布局,自动化测试,模块,安装脚本。当你创建一个新项目的时候,复杂这个框架改个名字就好了。



框架内容

首先创建项目目录:

root@he-desktop:~/python# mkdir -p projects

root@he-desktop:~/python# cd projects/

root@he-desktop:~/python/projects# mkdir skeleton

root@he-desktop:~/python/projects# cd skeleton/

root@he-desktop:~/python/projects/skeleton# mkdir bin NAME tests docs






我使用projects这个目录做为我的工作目录,目录里面包含skeleton这个项目,在你使用skeleton调用项目主模块的时候,NAME目录会被重命名。




建立初始化文件:

root@he-desktop:~/python/projects/skeleton# touch NAME/__init__.py

root@he-desktop:~/python/projects/skeleton# touch tests/__init__.py






然后创建setup.py文件,我们使用它来安装项目:

try:
from setuptools import setup
except ImportError:
from distutils.core import setup

config = {
'description': 'My Project',
'author': 'My Name',
'url': 'URL to get it at.',
'download_url': 'Where to download it.',
'author_email': 'My email',
'version': '0.1',
'install_requires': ['nose'],
'packages': ['NAME'],
'scripts': [],
'name': 'projectname'
}

setup(**config)






上面填写你自己的联系信息。




最后建一个简单的文件,在tests中,名称是NAME_tests.py:

from nose.tools import *
import NAME

def setup():
print "SETUP!"

def teardown():
print "TEAR DOWN!"

def test_basic():
print "I RAN!"






最终的文件结构

root@he-desktop:~/python/projects/skeleton# ls -R

.:

bin docs NAME setup.py tests




./bin:




./docs:




./NAME:

__init__.py




./tests:

__init__.py NAME_tests.py






如果你的目录结构不是这样的,那么你可能处在不正确的位置,很多人会进入tests/目录去执行文件,这是不对的,执行程序测试,你必须在tests/的上级目录,如果你这样做:

root@he-desktop:~/python/projects/skeleton/tests# nosetests

.

----------------------------------------------------------------------

Ran 1 test in 0.001s




OK






那就是不对的,正确的做法是:

root@he-desktop:~/python/projects/skeleton/tests# cd ..

root@he-desktop:~/python/projects/skeleton# ls

bin docs NAME setup.py tests

root@he-desktop:~/python/projects/skeleton# nosetests

.

----------------------------------------------------------------------

Ran 1 test in 0.011s




OK






安装Python包

安装下面这些包:


[*]pip fromhttp://pypi.python.org/pypi/pip
[*]distribute fromhttp://pypi.python.org/pypi/distribute
[*]nose fromhttp://pypi.python.org/pypi/nose/
[*]virtualenv fromhttp://pypi.python.org/pypi/virtualenv

不仅仅是下载安装这些包,还要去看看别人是怎么评价这些包的。






测试你的安装

当你完成了安装,试试下面的命令:


root@he-desktop:~/python/projects/skeleton# nosetests

.

----------------------------------------------------------------------

Ran 1 test in 0.011s




OK




下一个练习会介绍这个命令,如果没有出现上面的提示,说明你哪里做错了,确保__init__.py文件在NAME和tests文件夹下,确保tests/NAME_tests.py文件的正确性。




使用框架

上面的工作做好了以后,当你要开始一个新的项目时,做这些事就可以了:


[*]复制框架的文件夹,重命名为你需要的名称。
[*]重命名NAME模块,改成你想要的名称。
[*]编辑setup.py文件对应的信息。
[*]重命名tests/NAME_tests.py中的NAME和上面的模块名称一样。
[*]使用nosetests确认是否正常工作。
[*]开始编程。

需求测试



这个练习没有加分练习,但是你必须完成下面的练习:


[*]查看你安装的包的用法。
[*]阅读setup.py文件和它的需求。
[*]创建一个项目,在模块中编写一个能运行的代码。
[*]写一个可运行的脚本放到bin文件夹中,看看系统是怎么运行python脚本的。
[*]在setup.py中设置bin脚本,以便安装。
[*]使用setup.py安装你的模块,确保它能工作,使用pip卸载。
页: [1]
查看完整版本: Learn Python The Hard Way学习(46)