Как мне использовать 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 не удовлетворяющим И virtualenv не использует уже установленные системные пакеты.requirements.txt
и pip пытается установить его независимо от установленной старой версии openbabel.
И при установке 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