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

2015-03-26 22:40:11 +08:00
 reorx

最近无论在公司还是业余时间都挖了不少新坑,为了高效挖坑,不再复制粘贴,专门整理出这个用于创建 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

4817 次点击
所在节点    Python
14 条回复
bcxx
2015-03-26 23:40:52 +08:00
为啥不用类似 paste 的东西来定义一下变量啊,这样就不用每次都改了
reorx
2015-03-27 10:18:09 +08:00
@bcxx 想尽量保持简洁,不依赖外部库,而且创建新项目这件事情也不是真的频繁到 cp + mv 几下都觉得麻烦嘛。另外 paste 多年没有更新了,不想用这种古老的东西…
tiant167
2015-03-27 10:18:40 +08:00
已收藏~# 早啊~
felinx
2015-03-27 10:38:18 +08:00
小蜜蜂,赞!
reorx
2015-03-27 10:45:41 +08:00
@felinx 嗡嗡嗡,飞龙早!
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
2015-03-27 11:32:08 +08:00
期待flask的启动模板...
reorx
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
2015-03-27 14:03:27 +08:00
@reorx 长知识了,谢谢
wph95
2015-03-27 14:14:34 +08:00
manage.py………
第一眼以为是django
reorx
2015-03-27 14:39:27 +08:00
@wph95 自从用了 django,manage.py 这个名字就和入口脚本的概念深深地绑定在我的脑海里,让我再也想不出别的词来… orz
glasslion
2015-03-27 15:03:08 +08:00
Python, Django, Flask 都有官方推荐的模板, 还有那么多人喜欢重复造轮子

https://github.com/pypa/sampleproject
https://github.com/audreyr/cookiecutter
reorx
2015-03-27 15:06:30 +08:00
@glasslion 所以只是 1. 满足自己需求,2. 多一个选择给不满意已有方案的人
elvis_w
2015-03-29 20:07:53 +08:00
@wph95 flask-script 也爱用这个文件名

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/179597

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX