buildout是什么

Buildout是一个基于Python的构建工具, 通过一个配置文件,可以从多个部分创建、组装并部署你的应用,即使应用包含了非Python的组件,Buildout也能够胜任. Buildout不但能够像setuptools一样自动更新或下载安装依赖包,而且还能够像virtualenv一样,构建一个封闭隔离的开发环境.

buildout 的中文文档非常稀少,这里有篇blog,抄一些东西过来

demo

步骤

假设你有一个项目newproject,从来用过buildout,安装什么的就不说了

cd newproject
buildout init
wget -O bootstrap.py https://bootstrap.pypa.io/bootstrap-buildout.py
python bootstrap.py

此时你可以看到生成了一些目录:eggs, develop-eggs,bin,parts等,先不管

vim buildout.cfg

将下面的东西加到 [buildout] 段, 可以新建一个versions.cfg来做以前pip时requirements.txt的作用

show-picked-versions=true
extends = versions.cfg
update-versions-file = versions.cfg
versions = versions

例如项目依赖为ipython,vim versions.cfg

[versions]
ipython = 5.1.0

vim buildout.cfg,添加一个develop = 的玩意儿,假设开发的东西是个包,那么目录为.,并且需要写一个setup.py,否则执行bin/buildout会报错

[buildout]
develop = .

随便先写一个简单的setup.py, 其中package_dir={'': 'src'}必写,src为你项目的代码根目录,当然如果有依赖包的话需要些install_requires

# -*- coding: utf-8 -*-
from setuptools import find_packages, setupsetup(name='buildout_demo',version='0.0.1',license='MIT',author='',author_email='',description='buildout demo',url='',packages=find_packages(exclude=['tests']),package_data={'buildout_demo': ['README.md']},package_dir={'': 'src'},
)

vim buildout.cfg, 注意这里面一定要有一个part = 的东西

然后执行 bin/buildout, 你就会看到buildout会自动下载一些包(例如这里的ipython)丢到eggs目录下

添加part

[buildout]
parts = tools[tools]
recipe = zc.recipe.egg
interpreter = ipython
eggs = ipython[ls_root]
recipe = plone.recipe.command
command = ls -al /
update-command = ${:command}

其中,每个part都必须有recipe这个玩意儿,而recipe则可以认为是buildout一些工作流的命令,例如 zc.recipe.egg是把包装到egg目录, plone.recipe.command 是在buildout时可以执行的某些命令, 可以在 pypi 搜索 buildout recipe列表

用buildout来构建python项目相关推荐

  1. 手机python软件怎么创建项目_创建成功的 Python 项目

    创建成功的 Python 项目 Patrick Altman 2012 年 3 月 14 日发布 Python 开源项目的生态系统丰富多样.您可以在这一雄厚的基础上完成下一个开源项目的生产.此外,这也 ...

  2. python项目-python完整项目

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 一个完整的python项目需要具备什么? 1. 需求功能的实现: 实现思路+现有框 ...

  3. python项目构建工具zc.buildout

    转载:http://blog.csdn.net/u011630575/article/details/52940099 buildout简介 Buildout 是一个基于Python的构建工具, Bu ...

  4. Python训练营2021:构建8个真实世界的Python项目

    时长:19h 27m |视频:. MP4,1280×720 30 fps |音频:AAC,44.1 kHz,2ch |大小:9.54 GB 语言:英语+中英文字幕 机译 从Python Web开发的初 ...

  5. python项目构建_通过构建4个项目来学习Python网络

    python项目构建 The Python programming language is very capable when it comes to networking. We've releas ...

  6. python 项目构建工具_GitHub - shjlone/emake: 你见过的最简单的 GCC/CLANG 项目构建工具(python3版本)...

    python3实现版本 Preface GNU Make 太麻烦?Makefile 写起来太臃肿?头文件依赖生成搞不定?多核同时编译太麻烦?Emake 帮你解决这些问题: 使用简单:设定源文件,设定编 ...

  7. chatbot使用_如何使用Python构建Chatbot项目

    chatbot使用 聊天机器人对企业组织和客户都非常有帮助. 大多数人都喜欢直接从聊天室进行交谈,而不是致电服务中心. Facebook发布的数据证明了机器人的价值. 每月在人与公司之间发送的消息超过 ...

  8. python项目使用setuptools和rpmbuild构建rpm包

    python项目使用setuptools和rpmbuild构建rpm包 文章目录 python项目使用setuptools和rpmbuild构建rpm包 一.setuptools 二.使用rpmbui ...

  9. Python项目打包部署Linux服务上

    文章目录 前言 一.项目打包 1.1.项目结构 1.2.本地打包Python项目依赖 二.发布Linux上 2.1.部署方式 2.1.1.直接部署 2.1.2.Docker部署 2.1.2.1.Lin ...

最新文章

  1. 2016年11月2日——jQuery源码学习笔记
  2. 8.非关系型数据库(Nosql)之mongodb的应用场景(关系型数据库 和 Mongodb进行CRUD时数据用时的比较)
  3. 附录:更多有序集合操作命令
  4. glxinfo: not found
  5. Asp.Net的Forms验证,解决Cookie和Seesion失效时间。
  6. pycharm 设置环境变量
  7. lnmp一键安装包linux,lnmp一键安装包下载地址
  8. “大数据杀熟”将被明令禁止:亚马逊才是大数据杀熟算法的鼻祖
  9. 如何查看自己windows密钥
  10. Pygame实战之外星人入侵NO.5——操作子弹
  11. 浮点数转换为大写货币金额
  12. nginx 防止恶意域名解析_Nginx 防止被域名恶意解析的办法
  13. 拯救者y7000p进入BIOS
  14. 美团登录获取cookie
  15. linux 7.0 域名,RHEL 7.0已发布 CentOS 7 即将到来
  16. 基础 | 并发编程 - [LockSupport]
  17. podcast什么意思php,什么是podcast?
  18. P110 03-掌握vue-router懒加载的使用
  19. python中关于axis=0和axis=1应该如何理解?
  20. Vimium:全程使用键盘来操作浏览器的插件,脱离鼠标点击浏览器的限制,与Vim类似

热门文章

  1. 重温目标检测--YOLO v2 -- YOLO9000
  2. 对象分割--Fully Convolutional Instance-aware Semantic Segmentation
  3. Kaldi aishell 200h小时训练问题集合
  4. 移动硬盘插入提示格式化
  5. 从零开始在ubuntu上安装和使用k8s集群及报错解决
  6. 如何辨别二逼、文艺互联网公司?
  7. main方法的格式讲解
  8. 刚入行的软件测试工程师如何自学软件测试?0 基础该怎么学习软件测试
  9. mysql case设固定值_MySQL CASE语句将自定义值放置为NULL
  10. mysql update 有中文_MySQL Update语句一个非常经典的“坑”