我如何在Travis CI中使用pythonopenbael?

2024-06-01 04:50:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我把Travis CI作为毒理学绘图项目的一部分。对于这个项目,我需要python openbabel作为依赖项。因此,我已经将apt-get安装程序添加到。特拉维斯·伊梅尔文件,如下所示(删除注释)。在

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本身提出的整个构建过程,这将产生以下结果特拉维斯·伊梅尔公司名称:

^{pr2}$

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

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

简而言之,我如何让python-openbabel使用Travis CI?在


Tags: install文件项目httpstravisci绘图get
2条回答

通过apt get安装的openbabel的版本是1.7,而在中指定的版本设置.py在要求.txt是openbabel>=1.8这个make使apt get安装的包不满足requirements.txt,pip正在尝试安装它,而不管安装的openbabel的旧版本是什么。和virtualenv不使用已经安装的系统包。在

并且当通过pip安装openbabel时,它需要libopenbabel的头文件,该头文件不包含在libopenbabel4中,travisCI使用的ubuntu12.04中的libopenbabel-dev版本不能满足openbabel==1.8的需要。在

解决方案:

手动安装libopenbabel-devlibopenbabel4的更新版本:

before_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

我看到现在构建在pip安装需求阶段失败了。Travis为运行python创建了一个虚拟环境。默认情况下,系统上安装的python包(即通过apt-get)将不可用,除非您将其添加到特拉维尔斯.yml公司名称:

virtualenv:
      system_site_packages: true

我在python-qt4和pythonqgis中遇到了相同的问题,这里是一个特拉维斯·伊梅尔我最近使用的文件:https://github.com/anitagraser/TimeManager/blob/master/.travis.yml

相关问题 更多 >