一个用于在Python级别模拟非鸡蛋模块鸡蛋的食谱
项目描述
支持
文档: http://pypi.python.org/pypi/collective.recipe.mockedeggs
代码仓库: https://svn.plone.org/svn/collective/collective.recipe.mockedeggs/trunk
有关问题和评论请致信 thomas.desvenain at gmail.com
详细文档
用法
有时您无法通过构建引擎或easy_install添加鸡蛋,例如,如果系统中的某些开发库缺失或太旧等。
但是,您可以使用系统打包工具直接在系统上安装模块(例如,Linux的port install python-xxx,apt-get install python-xxx或Windows的.msi安装程序。例如,python-ldap或lxml在Windows上使用源鸡蛋难以安装,通常作为二进制安装程序提供。
然后,尽管您在Python环境中得到了所有需要的东西,但是构建程序可能会失败,因为缺少一个鸡蛋。
该食谱将使构建程序相信缺失的鸡蛋是可用的并已安装,当您的应用程序将使用您以自己的方式安装的系统级Python包时。
我知道您通常不应该这样做,但有时这是完成构建程序的唯一(简单)方法。
如何操作
您必须添加 在您的部分之上 一个 collective.recipe.mockedeggs 食谱部分
[buildout] parts = mocked-eggs other parts... [mocked-eggs] recipe=collective.recipe.mockedeggs
该食谱支持以下选项
- mocked-eggs
您想要模拟的鸡蛋列表,包括它们的版本号,例如
mocked-eggs = python-ldap=2.3.10 Markdown = 1.7
示例用法
我们将首先创建一个使用该配方构建的系统。
>>> write('buildout.cfg', ... """ ... [buildout] ... parts = mocked-eggs-test ... zopepy ... ... eggs = mocked1 ... mocked2 ... ... [mocked-eggs-test] ... recipe = collective.recipe.mockedeggs ... mocked-eggs = ... mocked1=1.0 ... mocked2= 2.0 ... ... [zopepy] ... recipe = zc.recipe.egg ... interpreter = zopepy ... eggs = mocked1 ... mocked2 ... ... """)
运行构建系统后,我们得到以下结果:
>>> print 'start...\n', system(buildout) start... Installing mocked-eggs-test. mocked-eggs-test: Mocked eggs mocked1, mocked2. ... >>> import os >>> os.path.exists('mocked-eggs-test') True >>> os.path.exists('mocked-eggs-test/fake-mocked1') True >>> os.path.exists('mocked-eggs-test/fake-mocked2') True >>> setup1 = open('mocked-eggs-test/fake-mocked1/setup.py').read() >>> '1.0' in setup1 True >>> "'mocked1'" in setup1 True >>> binary = open('bin/zopepy', 'r').read() >>> 'mocked-eggs-test/fake-mocked1' in binary True
贡献者
“Thomas Desvenain”,作者
“Gilles Lenfant”,贡献者
变更历史
1.0rc1 23/03/2010
在模拟鸡蛋声明中我们可以使用空格(myegg = 2.0 是允许的)
更好的文档 [glenfant,tdesvenain]
1.0a1 10/03/2010
初始发布 [tdesvenain]
使用 ZopeSkel 创建配方