四个 Python 项目管理的构建工具

Python 历时这么久以来至今还未有一个事实上标准的项目管理及构建工具,以至于造成 Python 项目的结构与构建方式五花八门。这或许是体现了 Python 的自由意志。

不像 Java 在经历了最初的手工构建,到半自动化的 Ant, 再到 Maven 基本就是事实上的标准了。其间 Maven 还接受了其他的 Gradle(Android 项目主推), SBT(主要是 Scala 项目), Ant+Ivy, Buildr 等的挑战,但都很难撼动 Maven 的江湖地位,而且其他的差不多遵循了 Maven 的目录布局。

回到 Python,产生过 pip, pipenv, conda 那样的包管理工具,但对项目的目录布局没有任何约定。

关于构建很多还是延续了传统的 Makefile 的方式,再就是加上 setup.py 和 build.py 用程序代码来进行安装与构建。关于项目目录布局,有做成项目模板的,然后做成工具来应用项目模板。

下面大概浏览一下四个工具的使用

  1. CookieCutter

  2. PyScaffold

  3. PyBuilder

  4. Poetry

 CookieCutter 一个经典的 Python 项目目录结构

$ pip install cookiecutter
$ cookiecutter gh:audreyr/cookiecutter-pypackage   
# 以 github 上的 audreyr/cookiecutter-pypackage 为模板,再回答一堆的问题生成一个 Python 项目
......
project_name [Python Boilerplate]: sample
......

最后由 cookiecutter 生成的项目模板是下面的样子:

$ tree sample
sample
├── AUTHORS.rst
├── CONTRIBUTING.rst
├── HISTORY.rst
├── LICENSE
├── MANIFEST.in
├── Makefile
├── README.rst
├── docs
│   ├── Makefile
│   ├── authors.rst
│   ├── conf.py
│   ├── contributing.rst
│   ├── history.rst
│   ├── index.rst
│   ├── installation.rst
│   ├── make.bat
│   ├── readme.rst
│   └── usage.rst
├── requirements_dev.txt
├── sample
│   ├── __init__.py
│   ├── cli.py
│   └── sample.py
├── setup.cfg
├── setup.py
├── tests
│   ├── __init__.py
│   └── test_sample.py
└── tox.ini

3 directories, 26 files

这大概是当前比较流行的目录结构的主体框架,主要元素是:

$ tree sample
sample
├── Makefile
├── README.rst
├── docs
│   └── index.rst
├── requirements.txt
├── sample
│   ├── __init__.py
│   └── sample.py
├── setup.cfg
├── setup.py
└── tests
    ├── __init__.py
    └── test_sample.py

项目 sample 目录中重复 sample 目录中放置 Python 源文件,tests 目录中是测试文件,再加一个 docs 目录放文档,README.rst, 其他的用于构建的 setup, setup.cfg 和 Makefile 文件。

这其实是一个很经典的 Python 项目结构,接下来的构建就用 make 命令了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# Second-Market 基于python+Django+Mysql的校园二手交易市场 # 运行步骤 需要先安装Python的相关依赖:Pillow,Python-Mysql,Djago1.10 * 第一步:创建数据库,数据库名:cucmarket * 第二步:执行SQL语句,打开cucmarket.sql文件,运行该文件中的SQL语句 * 第三步:源码文件为cucmarket.zip,修改源代码中的settings.py文件,改成自己的mysql数据库用户名和密码 * 第四步:运行命令:python manage.py runserver * 第五步:打开浏览器查看 测试账户 * 普通会员账户: 学号:20171111111 密码:111111 * 管理员账户: 用户名:admin 密码:asdf1234 进入管理员页面需在URL后面加上/admin,如http://localhost:8000/admin/ # 系统设计 ## 功能设计 ### 任务目标 建设一个校园二手用品交易,就是开发一个基于C2C模式的主要面向大学生的需求的二手用品交易平台,方便大学生足不出户就可以浏览想要的物品,方便大家信息交流,提高交易水平。为在校学生提供一个高效、便利、规的二手交易市场。同时对二手商品循环使用可以倡导资源的合理使用,构建和谐校园、节约型校园,减少浪费,给予货物“第二次生命”。  ### 用户特点 校园二手交易网上进行交易的大多都是本校的学生,系统的用户主要分为系统管理员、游客、买家、卖家等业务对象。   系统的一般用户只需具有基础的在线浏览能力即可正常使用系统提供的各种服务。  系统后台采用了可视化管理界面,因而要求维护人员只须具备基础的网站及数据库维护能力,能处理一些常见的操作错误。 1.系统管理员:管理商品、管理会员等  2.会员:个人信息管理、会员登录、搜索二手商品、浏览二手商品、发布二手商品信息、二手商品信息管理  3.游客:搜索二手商品、浏览二手商品、会员注册 ### 参与者列表 1、学生:使用Web浏览器访问,发布二手商品信息以及购买二手商品的人 · 2、管理员:管理商品,管理会员等 ### 基本要求 (1)学生可以注册成为会员,通过登录系统,查看搜索二手商品信息等一系列操作。       (2) 会员可以编辑自己的二手商品信息,包括上传相片及编辑文字信息。       (3) 会员可以购买喜欢的二手商品并且进行评价。      (4) 游客可以查看搜索二手商品或者注册成为会员,但是不能够购买二手商品。       (5) 系统管理员可以管理会员的基本信息和二手商品的信息。 ### 功能模块图 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值