Python项目标准结构,我推荐这个!
这篇文章讲什么?
做数据分析习惯使用Jupyter notebook,编写几行代码,很方便得到结果。
但在真正项目中,一般使用PyCharm或VSCode开发。那有的小伙伴就问了,项目文件目录有没有一个标准的结构?
应该没有唯一的统一标准,但Python社区大佬Kenneth Reitz在2013年提出一个Python项目目录结构,推荐你日后项目中参考。
Python项目推荐结构
Kenneth推荐目录结构,如下所示:
samplemod-master
├── LICENSE
├── MANIFEST.in
├── Makefile
├── README.rst
├── docs
│ ├── Makefile
│ ├── conf.py
│ ├── index.rst
│ └── make.bat
├── requirements.txt
├── sample
│ ├── __init__.py
│ ├── core.py
│ └── helpers.py
├── setup.py
└── tests
├── __init__.py
├── context.py
├── test_advanced.py
└── test_basic.py
一共3个文件夹,17个文件。
先来看看第一个文件夹docs,它是项目相关文档,包括依赖包安装的Makefile和make.bat,项目配置conf.py,项目介绍文档index.rst,是比README.rst更细化的一个文档,README.rst更像一个项目总览。
第二个文件夹sample,在Python中一般叫做包(package),它是项目核心代码,一般会有多个这种包,__init__.py是Python包包括的文件。core.py和helpers.py是sample包里两个核心模块。
第三个包tests,是对应于sample包的单元测试包,里面的模块名称一般以test开头,测试sample里的每个模块。
setup.py是做什么的?
有了上面三个最主要的包外,文件最重要的有setup.py,这个文件是做什么的?
简单来说,setup.py是和打包相关的配置模块,一般结合setuptools。
有了setup.py,我们就可以安装包到本地全局环境,或者上传到PyPi,这样全世界开发者都有机会搜索到你的包,并使用pip安装上你的包。
里面代码相对比较标准和固定,比如在这个项目里代码如下:
from setuptools import setup, find_packages
with open('README.rst') as f:
readme = f.read()
with open('LICENSE') as f:
license = f.read()
setup(
name='sample',
version='0.1.0',
description='Sample package for Python-Guide.org',
long_description=readme,
author='Kenneth Reitz',
author_email='[email protected]',
url='https://github.com/kennethreitz/samplemod',
license=license,
packages=find_packages(exclude=('tests', 'docs'))
)
看到这里面用到README.rst和LICENSE文件,并且指定打哪些包分发出去。
以上就是本次分享的所有内容,想要了解更多欢迎前往公众号:Python 编程学习圈,每日干货分享
- Python 任务自动化工具:nox 的配置与 API
- 你可能不知道的 Python 技巧
- 进一步学习 nox 教程,轻松掌握命令行用法
- Python 中更优雅的日志记录方案
- 更好用的 Python 任务自动化工具:nox 官方教程
- 如何使用 Python 操作 Git 代码?GitPython 入门介绍
- Python 海象运算符 (:=) 的三种用法
- 如何利用现有加密方案保护你的 Python 代码
- Python 为什么要保留显式的 self ?
- Python 浮点数的冷知识
- Python 内存分配时的小秘密
- 如何通过测试提升 Python 代码的健壮性
- 推荐5个超级实用的 Python 模块,不知道就out啦!
- Python 中几种属性访问的区别
- Python 之父新发文,将替换现有解析器
- Python中tuple =赋值的四个问题
- 判断文件的几种方法及其优劣对比
- 理清 WebSocket 和 HTTP 的关系
- 学习Python操作JSON,网络数据交换不用愁
- 学习Python列表,只需这篇文章就够了