一个用于在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 创建配方