buildout製作特定的腳本

安裝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]>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章