V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
reorx
V2EX  ›  Python

总结了一个 Python 项目启动模板 project_sketch

  •  
  •   reorx ·
    reorx · 2015-03-26 22:40:11 +08:00 · 4782 次点击
    这是一个创建于 3528 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近无论在公司还是业余时间都挖了不少新坑,为了高效挖坑,不再复制粘贴,专门整理出这个用于创建 Python 项目的通用模板,若有需要可以拿去使用~

    地址: https://github.com/reorx/project_sketch

    其实之前就看过很多类似的东西,但都没有特别满意的,每个人(包括我)写的都或多或少掺有个人风格,很难做到完全通用。但这次自己组织的这个呢,有两个特点我觉得还是不错的:

    1. 不啰嗦。尽量不加不需要的东西,比如什么 MANIFEST.in 啊, CHANGES 啊;gitignore 会很简洁,不会像 这货 里面各种没见过;还有 LICENSE , 说起来我觉得 90% 情况下大家写项目时是不需要带上 LICENSE 的,比如公司内的、自己顺手联系的,如果真的必要,去 这里 挑一个 ctrl-c 就好。

    2. 能看懂。一般一个 Python 项目中最复杂的脚手架文件莫非 setup.py, Makefile 以及作为入口的启动脚本,setup.py, Makefile 已经精简到几乎不需要改就可以用,启动脚本嘛我引入了 manage.py 这个文件,在其中使用了 click 这个我非常喜欢的 CLI 库, 随便改几行就可以很方便地创建命令了。

    另外,对项目中的每一个文件都有比较详细的描述,也能起到一点 Python Packaging Tutorial 的作用 :)

    P.S. 过两天会整理一个 flask 项目的启动模板,会比 fbone 好用一点点 :p

    第 1 条附言  ·  2015-04-19 17:15:49 +08:00
    发现一个非常好的 flask project generator,应该很难写得比它更好了…

    https://github.com/hustlzp/Flask-Boost
    14 条回复    2015-03-29 20:07:53 +08:00
    bcxx
        1
    bcxx  
       2015-03-26 23:40:52 +08:00
    为啥不用类似 paste 的东西来定义一下变量啊,这样就不用每次都改了
    reorx
        2
    reorx  
    OP
       2015-03-27 10:18:09 +08:00
    @bcxx 想尽量保持简洁,不依赖外部库,而且创建新项目这件事情也不是真的频繁到 cp + mv 几下都觉得麻烦嘛。另外 paste 多年没有更新了,不想用这种古老的东西…
    tiant167
        3
    tiant167  
       2015-03-27 10:18:40 +08:00
    已收藏~# 早啊~
    felinx
        4
    felinx  
       2015-03-27 10:38:18 +08:00
    小蜜蜂,赞!
    reorx
        5
    reorx  
    OP
       2015-03-27 10:45:41 +08:00
    @felinx 嗡嗡嗡,飞龙早!
    dddd
        6
    dddd  
       2015-03-27 10:58:18 +08:00
    我在别人的 makefile 里发现的,清除 pyc, pyo, ~备份文件的
    可以加在 clean 里,怎样??

    find . -name '*.pyc' -exec rm -f {} +
    find . -name '*.pyo' -exec rm -f {} +
    find . -name '*~' -exec rm -f {} +
    netpro
        7
    netpro  
       2015-03-27 11:32:08 +08:00
    期待flask的启动模板...
    reorx
        8
    reorx  
    OP
       2015-03-27 13:26:15 +08:00
    @dddd clean 一般是用来清除对应的 build 命令所产生的文件,.py[co] 文件并非 build 产生,而是运行产生的,而且它既不会被包含在打出的 package 里,也由于 gitignore 的存在不会被 git 所 track,正常情况下我们对它的存在几乎是无感知的。我只有在怀疑遗留的 pyc 文件影响了我对模块的引用时才会去清除它,所以我的 zsh 里有一句 alias clean_pyc="find . -name '*.pyc' -exec rm {} \;"

    至于 vim 的 backup file,正确的处理方式是让他放在固定的文件夹里,在 vim 配置里加上:

    set backupdir=~/.vim/backup

    就好了。毕竟指不准哪天真的需要,你也不能随便把它清除了不是?
    dddd
        9
    dddd  
       2015-03-27 14:03:27 +08:00
    @reorx 长知识了,谢谢
    wph95
        10
    wph95  
       2015-03-27 14:14:34 +08:00 via iPhone
    manage.py………
    第一眼以为是django
    reorx
        11
    reorx  
    OP
       2015-03-27 14:39:27 +08:00
    @wph95 自从用了 django,manage.py 这个名字就和入口脚本的概念深深地绑定在我的脑海里,让我再也想不出别的词来… orz
    glasslion
        12
    glasslion  
       2015-03-27 15:03:08 +08:00
    Python, Django, Flask 都有官方推荐的模板, 还有那么多人喜欢重复造轮子

    https://github.com/pypa/sampleproject
    https://github.com/audreyr/cookiecutter
    reorx
        13
    reorx  
    OP
       2015-03-27 15:06:30 +08:00
    @glasslion 所以只是 1. 满足自己需求,2. 多一个选择给不满意已有方案的人
    elvis_w
        14
    elvis_w  
       2015-03-29 20:07:53 +08:00
    @wph95 flask-script 也爱用这个文件名
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2687 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:20 · PVG 20:20 · LAX 04:20 · JFK 07:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.