0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解Python项目推荐结构

python爬虫知识分享 来源:python爬虫知识分享 作者:python爬虫知识分享 2022-03-28 15:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在真正项目中,一般使用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='me@kennethreitz.com',
   url='https://github.com/kennethreitz/samplemod',
   license=license,
   packages=find_packages(exclude=('tests', 'docs'))
)

看到这里面用到README.rst和LICENSE文件,并且指定打哪些包分发出去。
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 结构
    +关注

    关注

    1

    文章

    119

    浏览量

    22459
  • python
    +关注

    关注

    59

    文章

    4892

    浏览量

    90417
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用PYTHON进行的跨平台仿真

    如何使用编程语言Python来调用和控制VirtualLab Fusion中的模拟。请查看下面链接的文档,以找到关于如何设置和使用Python和VirtualLab Fusion之间的接口的详细指南,以及一个
    发表于 04-02 08:21

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    : https://code.visualstudio.com/docs/python/python-tutorial 请注意,这里我们将演示如何在全局环境中安装所需的软件包。对于使用多个Python
    发表于 03-31 09:39

    1688 商品详情 API 调用与数据解析 Python 实战

    你想要的是 1688 商品详情 API 的 Python 调用与数据解析实战方案,核心是完成 API 凭证配置、接口请求(含签名)、响应数据解析、异常处理 的全流程落地,我会提供可直接运行的代码,并
    的头像 发表于 02-10 11:23 507次阅读

    软通动力中标中国商飞产品结构系统项目

    软通动力成功中标上海航空工业(集团)有限公司“基于产品组织和更改迭代的全过程集成产品结构(XBOM)系统项目”(简称“产品结构(XBOM)系统项目”),此举标志着公司在高端装备制造数字
    的头像 发表于 12-19 13:58 696次阅读

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展模块中的少数算法(如早期 SIFT
    发表于 12-13 12:37

    淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 Python 代码实战

    本文详解淘宝开放平台taobao.item_get接口对接全流程,涵盖参数配置、MD5签名生成、Python企业级代码实现及高频问题排查,提供可落地的实战方案,助你高效稳定获取商品数据。
    的头像 发表于 09-26 09:13 1171次阅读
    淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 <b class='flag-5'>Python</b> 代码实战

    termux如何搭建python游戏

    termux如何搭建python游戏 Termux搭建Python游戏开发环境的完整指南 一、Termux基础环境准备 Termux是一款无需root即可在安卓设备上运行的Linux终端
    发表于 08-29 07:06

    python app不能运行怎么解决?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    发表于 08-06 06:27

    景旺电子泰国项目主体结构顺利封顶

    近日,随着最后一块顶板混凝土完成浇筑,景旺电子(泰国)有限公司项目(后文简称“项目”)主体结构顺利封顶。这一进展标志着该项目自此迈入设备安装与投产筹备的新阶段,为景旺电子深化国际化战略
    的头像 发表于 07-30 16:32 1539次阅读

    STM32项目分享:智能语音台灯(机智云)

    01—项目简介1.功能详解STM32智能语音台灯(机智云)功能如下:STM32F103C8T6单片机作为主控单元按键切换模式,支持自
    的头像 发表于 07-24 18:03 1962次阅读
    STM32<b class='flag-5'>项目</b>分享:智能语音台灯(机智云)

    C++ 与 Python:树莓派上哪种语言更优?

    Python是树莓派上的首选编程语言,我们的大部分教程都使用它。然而,C++在物联网项目中同样广受欢迎且功能强大。那么,在树莓派项目中选择哪种语言更合适呢?Python因其简洁性、丰富
    的头像 发表于 07-24 15:32 1221次阅读
    C++ 与 <b class='flag-5'>Python</b>:树莓派上哪种语言更优?

    STM32项目分享:智能鱼缸/水族箱/水产养殖系统

    01—项目简介1.功能详解STM32智能鱼缸/水族箱/水产养殖系统功能如下:可检测温度,水位
    的头像 发表于 07-03 18:24 1376次阅读
    STM32<b class='flag-5'>项目</b>分享:智能鱼缸/水族箱/水产养殖系统

    基础篇3:掌握Python中的条件语句与循环

    Python编程语言中,条件语句和循环是构成复杂逻辑和数据处理的基石。本篇基础教程将帮助您深入了解Python中的条件语句和循环结构,让您能够更好地控制程序流程。 条件语句 条件语句允许程序根据
    发表于 07-03 16:13

    STM32项目分享:智能鞋柜

    01—项目简介1.功能详解STM32智能鞋柜功能如下:DHT11检测鞋柜温湿度,温度低于阈值开启加热,湿度高于阈值开启加热和通风;P
    的头像 发表于 05-27 18:04 1227次阅读
    STM32<b class='flag-5'>项目</b>分享:智能鞋柜

    STM32项目分享:室内无线控制系统

    01—项目简介1.功能详解STM32室内无线控制系统功能如下:环境监测:温湿度、光照信息实时监测并在OLED上显示防盗报警:当有人闯
    的头像 发表于 05-27 18:04 1097次阅读
    STM32<b class='flag-5'>项目</b>分享:室内无线控制系统