Как мне использовать python-openbabel в Travis CI?

Я использую 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 работа с Трэвис-CI?

2 ответа

Я вижу, что теперь сборка не удалась на этапе установки требований pip. Трэвис создает виртуальную среду для запуска 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

Версия openbabel, установленная с помощью apt-get, равна 1.7, а версия, указанная в файле setup.py в файле Requirements. openbabel>=1.8,Это делает пакет установленным apt-get не удовлетворяющим requirements.txt и pip пытается установить его независимо от установленной старой версии openbabel. И virtualenv не использует уже установленные системные пакеты.

И при установке openbabel через pip ему нужны заголовочные файлы libopenbabel который не входит в libopenbabel4 который автоматически устанавливается python-openbabel Версия libopenbabel-dev в Ubuntu 12.04, используемой travisCI, не удовлетворяет потребности openbabel==1.8,

Решение:

установить более новую версию libopenbabel-dev а также libopenbabel4 вручную:

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
Другие вопросы по тегам