首页 > 程序开发 > Web开发 > Python >

Learn Python The Hard Way学习(46) - 一个项目的骨架

2012-07-10

下面学习怎么创建一个好的项目框架,基本的框架包括项目布局,自动化测试,模块,安装脚本。当你创建一个新项目的时候,复杂这个框架改个名字就好了。框架内容首先创建项目目录:root@he-desktop:~/python# mkd...

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

框架内容
首先创建项目目录:
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文件,我们使用它来安装项目:
[python]
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:
[javascript]
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 from http://pypi.python.org/pypi/pip
distribute from http://pypi.python.org/pypi/distribute
nose from http://pypi.python.org/pypi/nose/
virtualenv from http://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卸载。
作者:lixiang0522

相关文章
最新文章
热点推荐