相关文章推荐
小胡子的蛋挞  ·  中信建投总经理突然离职 媒体称被带走协助调查 ...·  2 年前    · 
苦恼的伤痕  ·  为什么vcpkg安装的gtkmm无法正常使用 ...·  2 年前    · 
发呆的白开水  ·  linux ...·  2 年前    · 
彷徨的哑铃  ·  oracle真实案例之oem大量占用cpu与 ...·  2 年前    · 
Code  ›  Python项目标准结构,我推荐这个!开发者社区
python rst
https://cloud.tencent.com/developer/article/1956003
慷慨大方的显示器
11 月前
double

Python项目标准结构,我推荐这个!

前往小程序,Get 更优 阅读体验!
立即前往
腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
double
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > Python项目标准结构,我推荐这个!

Python项目标准结构,我推荐这个!

作者头像
double
发布 于 2022-03-14 13:11:03
3.8K 0
发布 于 2022-03-14 13:11:03
举报
文章被收录于专栏: 算法channel

你好,我是zhenguo

这是我的 第503篇原创 。

这篇文章讲什么?

做数据分析习惯使用Jupyter notebook,编写几行代码,很方便得到结果。

但在真正项目中,一般使用PyCharm或VSCode开发。那有的小伙伴就问了,项目文件目录有没有一个标准的结构?

应该没有唯一的统一标准,但Python社区大佬Kenneth Reitz在2013年提出一个Python项目目录结构,推荐你日后项目中参考。

Python项目推荐结构

Kenneth推荐目录结构,如下所示:

代码语言: javascript
复制
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安装上你的包。

里面代码相对比较标准和固定,比如在这个项目里代码如下:

代码语言: javascript
复制
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,
 
推荐文章
小胡子的蛋挞  ·  中信建投总经理突然离职 媒体称被带走协助调查 6月1日晚间, 中信建投证券 发布公告称,公司执行董事李格平因个人原因,向公司董事会提交辞职报告,申请辞去公司执行董事、... - 雪球
2 年前
苦恼的伤痕  ·  为什么vcpkg安装的gtkmm无法正常使用? - 知乎
2 年前
发呆的白开水  ·  linux 获取网络状态信息(Rtnetlink) - zhangwju - 博客园
2 年前
彷徨的哑铃  ·  oracle真实案例之oem大量占用cpu与内存问题的解决方法_intrepid2008的博客-CSDN博客
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号