久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

用buildout來(lái)構(gòu)建python項(xiàng)目

 dinghj 2019-03-26

buildout是什么

Buildout是一個(gè)基于Python的構(gòu)建工具, 通過(guò)一個(gè)配置文件,可以從多個(gè)部分創(chuàng)建,、組裝并部署你的應(yīng)用,,即使應(yīng)用包含了非Python的組件,Buildout也能夠勝任. Buildout不但能夠像setuptools一樣自動(dòng)更新或下載安裝依賴(lài)包,,而且還能夠像virtualenv一樣,,構(gòu)建一個(gè)封閉隔離的開(kāi)發(fā)環(huán)境.

buildout 的中文文檔非常稀少,,這里有篇blog,抄一些東西過(guò)來(lái)

demo

步驟

假設(shè)你有一個(gè)項(xiàng)目newproject,,從來(lái)用過(guò)buildout,安裝什么的就不說(shuō)了

  1. cd newproject
  2. buildout init
  3. wget -O bootstrap.py https://bootstrap./bootstrap-buildout.py
  4. python bootstrap.py

此時(shí)你可以看到生成了一些目錄:eggsdevelop-eggs,bin,parts等,,先不管

vim buildout.cfg

將下面的東西加到 [buildout] 段, 可以新建一個(gè)versions.cfg來(lái)做以前pip時(shí)requirements.txt的作用

  1. show-picked-versions=true
  2. extends = versions.cfg
  3. update-versions-file = versions.cfg
  4. versions = versions

例如項(xiàng)目依賴(lài)為ipython,,vim versions.cfg

  1. [versions]
  2. ipython = 5.1.0

vim buildout.cfg,添加一個(gè)develop = 的玩意兒,,假設(shè)開(kāi)發(fā)的東西是個(gè)包,,那么目錄為.,并且需要寫(xiě)一個(gè)setup.py,否則執(zhí)行bin/buildout會(huì)報(bào)錯(cuò)

  1. [buildout]
  2. develop = .

隨便先寫(xiě)一個(gè)簡(jiǎn)單的setup.py, 其中package_dir={'': 'src'}必寫(xiě),,src為你項(xiàng)目的代碼根目錄,當(dāng)然如果有依賴(lài)包的話需要些install_requires

  1. # -*- coding: utf-8 -*-
  2. from setuptools import find_packages, setup
  3. setup(
  4. name='buildout_demo',
  5. version='0.0.1',
  6. license='MIT',
  7. author='',
  8. author_email='',
  9. description='buildout demo',
  10. url='',
  11. packages=find_packages(exclude=['tests']),
  12. package_data={'buildout_demo': ['README.md']},
  13. package_dir={'': 'src'},
  14. )

vim buildout.cfg, 注意這里面一定要有一個(gè)part = 的東西

然后執(zhí)行 bin/buildout, 你就會(huì)看到buildout會(huì)自動(dòng)下載一些包(例如這里的ipython)丟到eggs目錄下

添加part

  1. [buildout]
  2. parts = tools
  3. [tools]
  4. recipe = zc.recipe.egg
  5. interpreter = ipython
  6. eggs = ipython
  7. [ls_root]
  8. recipe = plone.recipe.command
  9. command = ls -al /
  10. update-command = ${:command}

其中,,每個(gè)part都必須有recipe這個(gè)玩意兒,而recipe則可以認(rèn)為是buildout一些工作流的命令,,例如 zc.recipe.egg是把包裝到egg目錄,, plone.recipe.command 是在buildout時(shí)可以執(zhí)行的某些命令, 可以在 pypi 搜索 buildout recipe列表

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多