安裝buildout
pip install zc.buildout
初始化
創建文件夾firstbuildout,然後進入該文件夾執行buildout命令,會產生如下就結果
├── bin
│ └── buildout
├── buildout.cfg
├── develop-eggs
│ ├── setuptools.egg-link
│ └── zc.buildout.egg-link
├── eggs
└── parts
編輯文件
首先是完成腳本,創建main包(必須有一一個__init__.py
文件),裏面有一個main.py的文件。文件內容如下
import requests
def main():
print requests.get('https://www.baidu.com')
然後需要編輯的是setup.py,裏面設置了腳本的位置main包下main文件裏的main函數。這樣就可以準備完成之後,執行buildout就可以在bin的文件夾中生成一個可以直接執行的腳本。
#!/usr/bin/python
# coding: utf-8
from setuptools import setup
setup(name='firstbuildout',
version='0.0.0',
author='***',
license='PRIVATE',
install_requires=[
'requests',
],
entry_points={
'console_scripts': [
'test = main.main:main'
],
}, )
另外還需要編輯的就是buildout.cfg。文件中配置了extends爲versions.cfg,表示的是配置文件應該從versions.cfg中讀取(配置文件可以有多個)。我們可以設置update-versions-file爲versions.cfg,表示的是我們希望buildout來維護versions.cfg,在執行buildout的時候,會更新第三方庫的版本(當然也會滿足已配置的版本限制的),這個時候會寫入文件verssions.cfg之中的。文件內容如下
[buildout]
develop = .
include-site-packages = true
update-versions-file = versions.cfg
extends = versions.cfg
parts =
tools
[tools]
recipe = zc.recipe.egg
eggs =
firstbuildout
scripts = test
必要操作
首先需要將當前包製作爲egg的形式,要不然在buildout執行過程中會找不到firstbuildout這個包的。因爲這個包是此項目的包。
python setup.py sdist
此操作會產生文件夾dist,裏面有一個壓縮文件firstbuildout-0.0.0.tar.gz
然後解壓,之後就可以直接安裝的。但是,可以等着buildout來給你安裝
tar xzf firstbuildout-0.0.0.tar.gz
產生對應的腳本
首先需要創建versions.cfg文件,使用touch versions.cfg
即可,因爲buildout需要從中讀取配置。然後執行buildout
即可大功告成,就會產生想要的腳本了
➜ firstbuildout tree bin
bin
├── buildout
└── test
0 directories, 2 files
直接執行bin/test即可
➜ firstbuildout bin/test
<Response [200]>