Установите Numpy 1.8 в Travis CI

6

В моем проекте я (должен) использовать функцию, включенную в Numpy 1.8, но не в более ранних версиях (опция formatter numpy.set_printoptions).

Поскольку машины сборки Travis CI основаны на Ubuntu 12.04, по умолчанию у меня есть только доступность Numpy 1.6.1. Затем я попытался установить пакет Numpy-1.8.1-Debian для Ubuntu 14.04 и его зависимости вручную, что привело к дальнейшим проблемам:

Мне нужно установить пакеты libblas3 и liblapack3, чтобы установить Numpy 1.8, что невозможно, если в системе установлены liblapack3gf и libblas3gf (которые есть по умолчанию), поскольку пакеты "сломают" их. Если я apt-get remove их, автоматически libatlas3gf-base устанавливается с помощью той же команды apt-get (что не соответствует стандартной системе Ubuntu, я даже устанавливаю ее на свою локальную машину Чтобы убедиться). Если я затем попытаюсь удалить Vlibatlas3gf-baseV, снова liblapack3gf и libblas3gf будут автоматически установлены снова.

Я не знаю, как справиться с этой проблемой, или как обойти это, чтобы заставить Numpy 1.8 работать с Travis. Я также пробовал предложения по обновлению Numpy через pip при условии здесь, но в Travis это не сработало.

Любая помощь очень ценится!

Большое спасибо!


Решение:

Я выполнил r-й ответ на следующий .travis.yml файл с дополнительной помощью здесь и здесь:

language: python

matrix:
  include:
    - python: 2.7
      env: NUMPY=1.8 SCIPY=0.13

notifications:
  email: false

before_install:
 - travis_retry wget http://repo.continuum.io/miniconda/Miniconda-3.8.3-Linux-x86_64.sh -O miniconda.sh
 - chmod +x miniconda.sh
 - bash miniconda.sh -b -p $HOME/miniconda
 - export PATH=/home/travis/miniconda/bin:$PATH
 - conda update --yes conda

install:
 - conda create --yes -n test python=$TRAVIS_PYTHON_VERSION
 - source activate test
 - conda install --yes numpy=$NUMPY scipy=$SCIPY matplotlib pip
 - pip install setuptools
 - [ ... some other packages to install ... ]
 - python setup.py install

script:
 - nosetests

Теперь все работает так, как ожидалось. Обратите внимание: вы сможете не импортировать и использовать PyLab с этой настройкой, см. Комментарии ниже для объяснений.

  • 0
    Вероятно, вам нужно установить PyQt4 для импорта pylab (см. Этот ответ ), sudo apt-get install python-qt4 . В качестве примечания следует по возможности избегать использования pylab , особенно в неинтерактивной среде, и предпочтение следует отдавать явному импорту: import numpy as np , import matplotlib.pyplot as plt (если вам нужны графики) и т. Д.
  • 0
    @rth rth Почему этого следует избегать? Потому что, если разумно этого избежать, я бы скорее приложил усилия для изменения своего кода, чем для дальнейшей попытки заставить PyLab работать в Travis.
Показать ещё 3 комментария
Теги:
matplotlib
numpy
travis-ci

3 ответа

3
Лучший ответ

Создание научных модулей python из источников (будь то компиляция напрямую или с помощью pip) в непрерывном потоке интеграции медленный (15 минут для numpy, еще 15 минут, если вам нужен scipy и т.д.), и пустая трата ресурсов,

Вам лучше использовать двоичный дистрибутив numpy, например, тот, который предоставляется Anaconda. Для Travis CI вы можете использовать

language: python

before_script:
  - wget http://repo.continuum.io/miniconda/Miniconda-3.8.3-Linux-x86_64.sh -O miniconda.sh
  - chmod +x miniconda.sh
  - export PATH=/home/travis/miniconda/bin:$PATH
  - conda install --yes numpy=1.8

Также рассмотрите этот более полный пример установки для Travis CI.

2

Я попытался установить Numpy 1.8.2 с pip на Travis CI и, похоже, сработал.

Вот содержимое моего файла .travis.yml:

language: python

before_script:
  - pip uninstall numpy -y
  - pip install -I numpy==1.8.2

script: python -c 'import numpy; print numpy.version.version'

Вы можете увидеть, что он успешно печатает 1.8.2 в этом журнале сборки.

Надеюсь, это поможет!

  • 1
    Спасибо за ваш ответ, но, как другие отметили, строительство требует времени, поэтому я хотел бы сначала проверить другие возможности, но, возможно, вернусь к вашему решению, если они мне не подойдут.
0

numpy теперь pre-installed на Travis CI. В редких случаях, когда предварительно установленная версия старше последней версии numpy, двоичные версии numpy являются доступный из PyPI, поэтому нет необходимости создавать numpy в Travis CI.

Выдержка из пример .travis.yml файл:

addons:
  apt:
    packages:
    - gfortran
    - libatlas-dev
    - libatlas-base-dev
    - liblapack-dev
    - libgmp-dev
    - libmpfr-dev

before_install:
  - pip install -U --only-binary=numpy,scipy numpy scipy

Ещё вопросы

Сообщество Overcoder
Наверх
Меню