如何在Travis CI中使用python-openbabel?

时间:2014-03-02 14:29:53

标签: python travis-ci openbabel

我使用Travis CI作为毒理学绘图项目的一部分。对于这个项目,我需要python-openbabel作为依赖。因此,我已将apt-get安装程序添加到.travis.yml文件中,如下所示(删除了注释)。

language: python
python: 
  - "2.7"
before_install:
  - sudo apt-get update -qq
  - sudo apt-get install python-openbabel
install: "pip install -r requirements.txt"
script: nosetests tox.py

但是,所有这些尝试均失败,并显示错误消息Error: SWIG failed. Is Open Babel installed?。我已经尝试将SWIG添加到要安装的应用程序列表中,但无济于事。

此外,我试图按照Openbabel本身的建议添加整个构建过程,这会产生以下travis.yml:

language: python
python: 
  - "2.7"
before_install:
  - sudo apt-get update -qq
  - sudo apt-get install python-openbabel
  - wget http://downloads.sourceforge.net/project/openbabel/openbabel/2.3.1/openbabel-2.3.1.tar.gz?r=http://%3A%2F%2Fsourceforge.net%2Fprojects%2Fopenbabel%2Fopenbabel%2F2.3.1%2Fts=1393727248&use_mirror=switch
  - tar zxf openbabel-2.3.1.tar.gz
  - mkdir build
  - cd build
  - cmake ../openbabel-2.3.1 -DPYTHON_BINDINGS=ON
  - make
  - make install
  - export PYTHONPATH=/usr/local/lib:$PYTHONPATH
install: "pip install -r requirements.txt"
script: nosetests tox.py

尝试解压缩下载的文件时失败。

所有失败的构建都可以在Travis-CI上看到:https://travis-ci.org/ToxProject/ToxProject
Github回购在这里:https://github.com/ToxProject/ToxProject

简而言之,我如何让python-openbabel与Travis-CI合作?

2 个答案:

答案 0 :(得分:1)

通过apt-get安装的openbabel版本为1.7,而requirements.txt中setup.py中指定的版本为openbabel>=1.8这个make使apt-get安装的软件包不满足requirements.txt,并且pip正在尝试安装它,无论安装的旧版本的openbabel。并且virtualenv不使用已经安装的系统软件包

当通过pip安装openbabel时,它需要libopenbabel的头文件,libopenbabel4中没有包含python-openbabel自动安装的libopenbabel-dev 版本travisCI使用的ubuntu 12.04中openbabel==1.8的{​​{1}}不满足libopenbabel-dev的需要。

解决方案:

手动安装较新版本的libopenbabel4before_install: - sudo apt-get install -qq -y swig python-dev - wget http://mirrors.kernel.org/ubuntu/pool/universe/o/openbabel/libopenbabel4_2.3.2+dfsg-1.1_amd64.deb - sudo dpkg -i libopenbabel4_2.3.2+dfsg-1.1_amd64.deb - wget http://mirrors.kernel.org/ubuntu/pool/universe/o/openbabel/libopenbabel-dev_2.3.2+dfsg-1.1_amd64.deb - sudo dpkg -i libopenbabel-dev_2.3.2+dfsg-1.1_amd64.deb

{{1}}

答案 1 :(得分:1)

我看到现在构建在pip安装要求阶段失败了。 Travis创建了一个运行python的虚拟环境。默认情况下,系统上安装的python包(即通过apt-get)将不可用,除非你将它添加到你的travils.yml:

virtualenv:
      system_site_packages: true

我遇到了与python-qt4和python-qgis相同的问题,这是我最近使用过的travis.yml文件:https://github.com/anitagraser/TimeManager/blob/master/.travis.yml