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包
安装下面这些包:
  1. pip fromhttp://pypi.python.org/pypi/pip
  2. distribute fromhttp://pypi.python.org/pypi/distribute
  3. nose fromhttp://pypi.python.org/pypi/nose/
  4. 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文件的正确性。

使用框架
上面的工作做好了以后,当你要开始一个新的项目时,做这些事就可以了:
  1. 复制框架的文件夹,重命名为你需要的名称。
  2. 重命名NAME模块,改成你想要的名称。
  3. 编辑setup.py文件对应的信息。
  4. 重命名tests/NAME_tests.py中的NAME和上面的模块名称一样。
  5. 使用nosetests确认是否正常工作。
  6. 开始编程。
需求测试
这个练习没有加分练习,但是你必须完成下面的练习:
  1. 查看你安装的包的用法。
  2. 阅读setup.py文件和它的需求。
  3. 创建一个项目,在模块中编写一个能运行的代码。
  4. 写一个可运行的脚本放到bin文件夹中,看看系统是怎么运行python脚本的。
  5. 在setup.py中设置bin脚本,以便安装。
  6. 使用setup.py安装你的模块,确保它能工作,使用pip卸载。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值