Python工程的文档结构
Python工程的文档结构,可以参考https://stackoverflow.com/questions/193161/what-is-the-best-project-structure-for-a-python-application;
有个答主提到了《Filesystem structure of a Python project》(http://as.ynchrono.us/2007/12/filesystem-structure-of-python-project_21.html),确实写的不错。这篇文章推荐的结构:
Project/
|-- bin/
| |-- project
|
|-- project/
| |-- test/
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
|
|-- setup.py
|-- README
开源工程对文档结构肯定更高些,可以参考:https://jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/。作者Jeff Knupp还写过一本介绍Pythonic Code的小书,值得一看!(下载此书:https://github.com/iamseancheney/pythonbooks/blob/master/PythonStyle-Writing_idiomatic_python_3.pdf)
其实更好的方法,可能是直接去GitHub上参考高赞项目的结构,比如PySpider(https://github.com/binux/pyspider)的文档结构:
PySpider
.
├── Dockerfile
├── LICENSE
├── MANIFEST.in
├── README.md
├── data
├── docs
│ ├── About-Projects.md
│ ├── About-Tasks.md
│ ├── Architecture.md
│ ├── Command-Line.md
│ ├── Deployment-demo.pyspider.org.md
│ ├── Deployment.md
│ ├── Frequently-Asked-Questions.md
│ ├── Quickstart.md
│ ├── Running-pyspider-with-Docker.md
│ ├── Script-Environment.md
│ ├── Working-with-Results.md
│ ├── apis
│ │ ├── @catch_status_code_error.md
│ │ ├── @every.md
│ │ ├── Response.md
│ │ ├── index.md
│ │ ├── self.crawl.md
│ │ └── self.send_message.md
│ ├── conf.py
│ ├── imgs
│ │ ├── creating_a_project.png
│ │ ├── css_selector_helper.png
│ │ ├── demo.png
│ │ ├── developer-tools-network-filter.png
│ │ ├── developer-tools-network.png
│ │ ├── index_page.png
│ │ ├── inspect_element.png
│ │ ├── pyspider-arch.png
│ │ ├── request-headers.png
│ │ ├── run_one_step.png
│ │ ├── search-for-request.png
│ │ ├── tutorial_imdb_front.png
│ │ └── twitch.png
│ ├── index.md
│ └── tutorial
│ ├── AJAX-and-more-HTTP.md
│ ├── HTML-and-CSS-Selector.md
│ ├── Render-with-PhantomJS.md
│ └── index.md
├── mkdocs.yml
├── pyspider
│ ├── __init__.py
│ ├── database
│ │ ├── __init__.py
│ │ ├── base
│ │ │ ├── __init__.py
│ │ │ ├── projectdb.py
│ │ │ ├── resultdb.py
│ │ │ └── taskdb.py
│ │ ├── basedb.py
│ │ ├── elasticsearch
│ │ │ ├── __init__.py
│ │ │ ├── projectdb.py
│ │ │ ├── resultdb.py
│ │ │ └── taskdb.py
│ │ ├── local
│ │ │ ├── __init__.py
│ │ │ └── projectdb.py
│ │ ├── mongodb
│ │ │ ├── __init__.py
│ │ │ ├── mongodbbase.py
│ │ │ ├── projectdb.py
│ │ │ ├── resultdb.py
│ │ │ └── taskdb.py
│ │ ├── mysql
│ │ │ ├── __init__.py
│ │ │ ├── mysqlbase.py
│ │ │ ├── projectdb.py
│ │ │ ├── resultdb.py
│ │ │ └── taskdb.py
│ │ ├── redis
│ │ │ ├── __init__.py
│ │ │ └── taskdb.py
│ │ ├── sqlalchemy
│ │ │ ├── __init__.py
│ │ │ ├── projectdb.py
│ │ │ ├── resultdb.py
│ │ │ ├── sqlalchemybase.py
│ │ │ └── taskdb.py
│ │ └── sqlite
│ │ ├── __init__.py
│ │ ├── projectdb.py
│ │ ├── resultdb.py
│ │ ├── sqlitebase.py
│ │ └── taskdb.py
│ ├── fetcher
│ │ ├── __init__.py
│ │ ├── cookie_utils.py
│ │ ├── phantomjs_fetcher.js
│ │ ├── splash_fetcher.lua
│ │ └── tornado_fetcher.py
│ ├── libs
│ │ ├── ListIO.py
│ │ ├── __init__.py
│ │ ├── base_handler.py
│ │ ├── bench.py
│ │ ├── counter.py
│ │ ├── dataurl.py
│ │ ├── log.py
│ │ ├── multiprocessing_queue.py
│ │ ├── pprint.py
│ │ ├── response.py
│ │ ├── result_dump.py
│ │ ├── sample_handler.py
│ │ ├── url.py
│ │ ├── utils.py
│ │ └── wsgi_xmlrpc.py
│ ├── logging.conf
│ ├── message_queue
│ │ ├── __init__.py
│ │ ├── beanstalk.py
│ │ ├── kombu_queue.py
│ │ ├── rabbitmq.py
│ │ └── redis_queue.py
│ ├── processor
│ │ ├── __init__.py
│ │ ├── processor.py
│ │ └── project_module.py
│ ├── result
│ │ ├── __init__.py
│ │ └── result_worker.py
│ ├── run.py
│ ├── scheduler
│ │ ├── __init__.py
│ │ ├── scheduler.py
│ │ ├── task_queue.py
│ │ └── token_bucket.py
│ └── webui
│ ├── __init__.py
│ ├── app.py
│ ├── bench_test.py
│ ├── debug.py
│ ├── index.py
│ ├── login.py
│ ├── result.py
│ ├── static
│ │ ├── css_selector_helper.min.js
│ │ ├── debug.min.css
│ │ ├── debug.min.js
│ │ ├── index.min.css
│ │ ├── index.min.js
│ │ ├── package.json
│ │ ├── result.min.css
│ │ ├── result.min.js
│ │ ├── src
│ │ │ ├── css_selector_helper.js
│ │ │ ├── debug.js
│ │ │ ├── debug.less
│ │ │ ├── index.js
│ │ │ ├── index.less
│ │ │ ├── result.less
│ │ │ ├── splitter.js
│ │ │ ├── task.less
│ │ │ ├── tasks.less
│ │ │ └── variable.less
│ │ ├── task.min.css
│ │ ├── task.min.js
│ │ ├── tasks.min.css
│ │ ├── tasks.min.js
│ │ └── webpack.config.js
│ ├── task.py
│ ├── templates
│ │ ├── debug.html
│ │ ├── index.html
│ │ ├── result.html
│ │ ├── task.html
│ │ └── tasks.html
│ └── webdav.py
├── requirements.txt
├── run.py
├── setup.py
├── tests
│ ├── __init__.py
│ ├── data_fetcher_processor_handler.py
│ ├── data_handler.py
│ ├── data_sample_handler.py
│ ├── data_test_webpage.py
│ ├── test_base_handler.py
│ ├── test_bench.py
│ ├── test_counter.py
│ ├── test_database.py
│ ├── test_fetcher.py
│ ├── test_fetcher_processor.py
│ ├── test_message_queue.py
│ ├── test_processor.py
│ ├── test_response.py
│ ├── test_result_dump.py
│ ├── test_result_worker.py
│ ├── test_run.py
│ ├── test_scheduler.py
│ ├── test_task_queue.py
│ ├── test_utils.py
│ ├── test_webdav.py
│ ├── test_webui.py
│ └── test_xmlrpc.py
├── tools
│ └── migrate.py
└── tox.ini27 directories, 177 files
Python工程的文档结构相关推荐
- 【在工程Word文档的大量表格中自动插入图片的python程序】
在工程Word文档的大量表格中自动插入图片的python程序 一.问题描述 在word的表格中插入图片代码 图形界面GUI设计 程序打包 一.问题描述 我的姐姐是一个工程技术公司的资料员,经常需要在w ...
- html格式文档结构保存数据库6,freeCAD文档结构
一个freecad文档包含了你场景中的所有物体.它可以包含组及任何工作平台制造的物体.你可以切换工作台,但是它仍然工作在同一个文档上.当您保存您的工作时,该文件就被保存到磁盘上.你可以同时打开多个fr ...
- CSS Word的文档结构视图设计
"文档结构视图"功能,可以通过jQuery的动画来模拟.该功能与Word保持一致,默认情况下,目录可见.当用户点击"文档结构视图"后,隐藏目录,再次点击后,显示 ...
- Python提取Word文档中所有超链接地址和文本
使用Python扩展库python-docx操作Word文档的相关文章,可以阅读: Python批量导入图片到Word文件 Python查找Word文件中红色和加粗的文字(附元宵节送书活动中奖名单) ...
- python获取word页数_使用Python的word文档的页数(Number of pages of a word document with Python)...
使用Python的word文档的页数(Number of pages of a word document with Python) 有没有办法用Python有效地获得word文档(.doc,.doc ...
- python - 官方简易文档篇(1)常用、函数
Python Tutorial, 发布 3.8.4rc1 tutorial.pdf 刚总结完str的一些细节,其中还有很多关于类的自定义的因为没有接触过,所以还不知道如何去用,但是再菜鸟教程上看到一个 ...
- 数据导入与预处理-第4章-数据获取python读取pdf文档
数据导入与预处理-第4章-数据获取Python读取PDF文档 1 PDF简介 1.1 pdf是什么 2 Python操作PDF 2.1 pdfplumber库 2.2 pdfplumber基本操作 2 ...
- python docx 合并文档 图片_MBT文档模型化生成工具——30倍效率文档撰写工程化方法...
MBT(A model based document builder)文档模型化生成工具用户手册--30倍效率文档撰写工程化方法 1 简介 在软件工程领域,工程文档通常主要包括实施方案.需求分析.软件 ...
- HTML的简介、文档结构及基本标记
HTML的简介 HTML是英文 HyperText Markup Language 的缩写,它的意思是"超文本标记语言",用它编写出文档的文件的扩展名是".html&qu ...
最新文章
- 在幕后看看Swift中的Map,Filter和Reduce的实现
- nodejs 运行linux命令,node.js执行shell命令
- luogu P1330 封锁阳光大学
- DeDE 后台登陆广告
- 下一个更大元素 leetcode-496
- [js] 对`a == (‘1‘||‘2‘||‘3‘) ? false : true`写法进行改进,写出你优化后的方法
- 剑指Offer - 面试题58 - II. 左旋转字符串
- 腾讯发布企鹅号“达人计划”清退公告 清退后当月结算将被取消
- 《编译原理》学习笔记 ·002【第二章:文法和语言(形式语言理论)-1】
- [leetcode]1131. 绝对值表达式的最大值 --绝对值表达式枚举拆分的方法
- linux下client命令,Linux系统smbclient命令的使用方法
- 用matlab画相频曲线_matlab 幅频特性 相频特性代码,图片
- 2021 编程语言排行榜
- 网络分析仪的校准和测试方法
- 3dMax 倒角剖面(中式亭子)
- Android音视频开发详解
- 百度地图根据经纬度获取该地点所在城市信息
- Security Best Practices+Klocwork
- linux 进程间切换,linux 进程管理 进程切换
- 阿德莱德大学计算机科学学士学分,留学360:阿德莱德大学软件工程计算机科学学士专业简析...
热门文章
- Errors occurred during the build. Errors running builder 'JavaScript Validator' on project 'XXX'.
- 简单描述ListView中使用GestureDetector冲突的解决办法
- 音乐处理---H_music.php
- 一个class运用promise的延时调用
- 小米AIoT开发者大会28日召开,雷军的AIoT和小米的这一年
- Emoji表情编解码库XXL-EMOJI
- TCP之三次握手四次挥手
- 网络安全体系 应用学习手册 下载
- JAVA class.getResource()的用法
- Android Input系统之触摸屏