调用cmake构建cellml api和python绑定的方法

cellml.recipe.api的Python项目详细描述


概述

这是将使用 默认情况下启用所有选项。目前,有一些限制, 例如,构建cellml api所需的所有依赖项必须是 在使用这个配方之前安装,我不认为这会 现在在窗户下工作。

支持的选项

配方支持以下选项:

API版本
要生成的CellML API版本。有效版本生成的任何版本 通过cmake并具有python绑定(>;1.10),并且必须存在于 有效版本列表。
cmake生成器
要使用的生成器。只有默认选项Unix Makefiles是 支持,因为此配方构建在^{tt2}之上$ 它将使用makemake install
检查生成
是否检查生成时依赖项。默认设置为关闭,因为它 没有检测到gsl库,即使它是为我安装的。 与将-DCHECK_BUILD:BOOL=OFF传递给cmake相同。

其他支持的选项:

  • enable-examples
  • enable-annotools
  • enable-ccgs
  • enable-celeds
  • enable-celeds-exporter
  • enable-cevas
  • enable-cis
  • enable-cuses
  • enable-gsl-integrators
  • enable-malaes
  • enable-python
  • enable-rdf
  • enable-spros
  • enable-srus
  • enable-telicems
  • enable-vacss

请参考CellML API Documentations了解这些选项 去吧。

用法

因为这个鸡蛋是在pypi上发布的,所以这个食谱可以马上使用 在buildout.cfg中包含一个新的部分。以下是 配置示例:

[buildout]
parts =
    ...
    cellml-api
    cellmlpy

[cellml-api]
recipe = cellml.recipe.api
api-version = 1.10

[cellmlpy]
recipe = zc.recipe.egg
eggs =
interpreter = cellmlpy
scripts = cellmlpy
extra-paths = ${cellml-api:location}/lib/python

这个例子buildout.cfg将使用 已启用支持的选项,将在中生成脚本 bin/cellmlpy,它将允许在没有 设置PYTHONPATH和其他相关环境变量。 有关更多详细说明,请参阅示例目录 以及这个配方的其他示例用法。

0.7(2019-01-23)

  • 更新分发位置。

0.6(2018-07-31)

  • python 3兼容性。

0.5(2018-01-23)

  • 在github上添加了最新版本的cellml api。
  • 将运行路径添加到位。

0.4(2012-11-05)

  • 添加了CellML API 1.12。

0.3(2012-10-03)

  • 更正了telicem标志的输入错误。
  • 添加了CellML API 1.11。

0.2(2011-09-21)

  • 修复了将所有预期密钥分配给 空字符串,即使未赋值;这会导致各种不需要的边 影响。
  • 修复了此构建方法的位置为 未定义。

0.1(2011-09-21)

  • cellml api python绑定构建的初始版本。

详细文档

演示

这个配方在zc.recipe.cmmi上扩展,并在 调用cmake而不是./configure脚本,但是有cmake 生成Unix Makefiles,使make/make install CMMI调用将正常进行。

为了演示,我们没有下载/构建整个api 将使用模型(这是以前的设置)。

>>> ls(distros)
-  cellml-api-0.0fake.tgz

>>> distros_url = start_server(distros)
>>> archive_url = '%scellml-api-0.0fake.tgz' % distros_url

让我们创建我们的构建,但修改,以便使用我们的假存档。

>>> write('buildout.cfg',
... """
... [buildout]
... parts = cellml-api
...
... [cellml-api]
... recipe = cellml.recipe.api
... api-version = 0.0fake
... """)

由于我们的模拟API版本未列为可用版本, 建筑会死的。

>>> print('start ' + system(buildout))
start...
  Installing.
  Getting ... cellml-api.
  Initializing ... cellml-api.
...
Traceback (most recent call last):
...
ValueError: api-version `0.0fake` is not a supported version of...
<BLANKLINE>

好吧,既然我们的假版本显然不会被添加到 列出支持的api,我们仍然可以提供url和md5sum 由zc.recipe.cmmi提供的原始函数仍然有效。 使用所需的属性重写buildout.cfg。

>>> try: from hashlib import md5
... except ImportError: from md5 import new as md5
>>> m = md5(open(join(distros, 'cellml-api-0.0fake.tgz'), 'rb'
...             ).read()).hexdigest()
>>> write('buildout.cfg',
... """
... [buildout]
... parts = cellml-api
...
... [cellml-api]
... recipe = cellml.recipe.api
... url = %s
... md5sum = %s
... """ % (archive_url, m))

>>> print('start ' + system(buildout))
start...
...
CMake Warning:
  Manually-specified variables were not used by the project:
<BLANKLINE>
    CHECK_BUILD
    ENABLE_ANNOTOOLS
    ENABLE_CCGS
    ENABLE_CELEDS
    ENABLE_CELEDS_EXPORTER
    ENABLE_CEVAS
    ENABLE_CGRS
    ENABLE_CIS
    ENABLE_CUSES
    ENABLE_EXAMPLES
    ENABLE_GSL_INTEGRATORS
    ENABLE_MALAES
    ENABLE_PYTHON
    ENABLE_RDF
    ENABLE_SPROS
    ENABLE_SRUS
    ENABLE_TELICEMS
    ENABLE_VACSS
<BLANKLINE>
<BLANKLINE>
<BLANKLINE>
贡献者

汤米·余,作者

下载

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java IBM Notes 9电子邮件问题。自动从我的收件箱转发到另一个收件人   Android上的java覆盖删除键?   java More JPanel和背景图像   java AStar寻路|六角夹点   java Android存档库(aar)与标准jar   java转换docx后没有空行   java如何搜索FTS3表,使搜索的单词显示在列表的顶部   java运算符重载STL的性能损失是什么   java在本机SQL Hibernate中使用addJoin   使用hibernate的java动态列   java为什么整数在放入数组后会改变值?   如何将|系列与Java正则表达式匹配?   java问题在binarySearch中传递参数   Java:关于导入语句中使用的路径的愚蠢新手问题   java无法在文本框安卓中显示数据库中的数据   使用Java中的旧文件详细信息创建文件   java按降序进行升序快速排序