用buildout来构建python项目
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项目相关推荐
- 手机python软件怎么创建项目_创建成功的 Python 项目
创建成功的 Python 项目 Patrick Altman 2012 年 3 月 14 日发布 Python 开源项目的生态系统丰富多样.您可以在这一雄厚的基础上完成下一个开源项目的生产.此外,这也 ...
- python项目-python完整项目
广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 一个完整的python项目需要具备什么? 1. 需求功能的实现: 实现思路+现有框 ...
- python项目构建工具zc.buildout
转载:http://blog.csdn.net/u011630575/article/details/52940099 buildout简介 Buildout 是一个基于Python的构建工具, Bu ...
- Python训练营2021:构建8个真实世界的Python项目
时长:19h 27m |视频:. MP4,1280×720 30 fps |音频:AAC,44.1 kHz,2ch |大小:9.54 GB 语言:英语+中英文字幕 机译 从Python Web开发的初 ...
- python项目构建_通过构建4个项目来学习Python网络
python项目构建 The Python programming language is very capable when it comes to networking. We've releas ...
- python 项目构建工具_GitHub - shjlone/emake: 你见过的最简单的 GCC/CLANG 项目构建工具(python3版本)...
python3实现版本 Preface GNU Make 太麻烦?Makefile 写起来太臃肿?头文件依赖生成搞不定?多核同时编译太麻烦?Emake 帮你解决这些问题: 使用简单:设定源文件,设定编 ...
- chatbot使用_如何使用Python构建Chatbot项目
chatbot使用 聊天机器人对企业组织和客户都非常有帮助. 大多数人都喜欢直接从聊天室进行交谈,而不是致电服务中心. Facebook发布的数据证明了机器人的价值. 每月在人与公司之间发送的消息超过 ...
- python项目使用setuptools和rpmbuild构建rpm包
python项目使用setuptools和rpmbuild构建rpm包 文章目录 python项目使用setuptools和rpmbuild构建rpm包 一.setuptools 二.使用rpmbui ...
- Python项目打包部署Linux服务上
文章目录 前言 一.项目打包 1.1.项目结构 1.2.本地打包Python项目依赖 二.发布Linux上 2.1.部署方式 2.1.1.直接部署 2.1.2.Docker部署 2.1.2.1.Lin ...
最新文章
- 2016年11月2日——jQuery源码学习笔记
- 8.非关系型数据库(Nosql)之mongodb的应用场景(关系型数据库 和 Mongodb进行CRUD时数据用时的比较)
- 附录:更多有序集合操作命令
- glxinfo: not found
- Asp.Net的Forms验证,解决Cookie和Seesion失效时间。
- pycharm 设置环境变量
- lnmp一键安装包linux,lnmp一键安装包下载地址
- “大数据杀熟”将被明令禁止:亚马逊才是大数据杀熟算法的鼻祖
- 如何查看自己windows密钥
- Pygame实战之外星人入侵NO.5——操作子弹
- 浮点数转换为大写货币金额
- nginx 防止恶意域名解析_Nginx 防止被域名恶意解析的办法
- 拯救者y7000p进入BIOS
- 美团登录获取cookie
- linux 7.0 域名,RHEL 7.0已发布 CentOS 7 即将到来
- 基础 | 并发编程 - [LockSupport]
- podcast什么意思php,什么是podcast?
- P110 03-掌握vue-router懒加载的使用
- python中关于axis=0和axis=1应该如何理解?
- Vimium:全程使用键盘来操作浏览器的插件,脱离鼠标点击浏览器的限制,与Vim类似
热门文章
- 重温目标检测--YOLO v2 -- YOLO9000
- 对象分割--Fully Convolutional Instance-aware Semantic Segmentation
- Kaldi aishell 200h小时训练问题集合
- 移动硬盘插入提示格式化
- 从零开始在ubuntu上安装和使用k8s集群及报错解决
- 如何辨别二逼、文艺互联网公司?
- main方法的格式讲解
- 刚入行的软件测试工程师如何自学软件测试?0 基础该怎么学习软件测试
- mysql case设固定值_MySQL CASE语句将自定义值放置为NULL
- mysql update 有中文_MySQL Update语句一个非常经典的“坑”