2013-06-27 14 views
5

Próbuję skonfigurować system ciągłej kompilacji Travis z moim projektem, który ma numpy, scipy i matplotlib w swoich zależnościach. Piszę na pythona 3.3.Travis-ci matplotlib dependency i python3

W moim skrypcie .travis.yml instaluję numpy i scipy z apt-get, a także (na pewno) z pip (tylko numpy). Niestety, kompilacja matplotlib nadal mówi, że brakuje numpy w depach. Próbowałem prawie wszystkich metod znalezionych w WEB, ale większość z nich nie działa (są one nieaktualne, jak sądzę).

language: python                                                      
python:                                                        
    - "3.3"                                                       
install:                                                        
    - pip install numpy                                                    
    - pip install colorama 
    - pip install matplotlib 
    - pip install nose                                                     
script: nosetests                                                     
virtualenv:                                                       
    system_site_packages: true                                                   
before_install:                                                      
    - sudo apt-get update -qq                                                   
    - sudo apt-get install -qq python3-numpy python3-scipy 

Poniżej znajduje się interesująca część dziennika Travis. Mówi, że zależność nie jest spełniona, ale polecenie pip może zobaczyć numpy zainstalowane już z apt.

BUILDING MATPLOTLIB 
      matplotlib: 1.2.0 
       python: 3.3.2 (default, May 16 2013, 18:32:41) [GCC 4.6.3] 
       platform: linux 

REQUIRED DEPENDENCIES 
       numpy: no 
         * You must install numpy 1.4 or later to build 
         * matplotlib. 
Complete output from command python setup.py egg_info: 
basedirlist is: ['/usr/local', '/usr']                                        
+0

Spójrz na scipy travis.yml; na pewno zainstalowano 'numpy': https://github.com/scipy/scipy/blob/master/.travis.yml –

Odpowiedz

1

Jeśli nie trzeba przetestować przed wieloma wersjami Pythona, najłatwiejszy trik Travis jest powiedzieć, że język jest c a następnie zainstalować wszystko z apt-get. Rozwiązuje to wszystkie problemy z system_site_packages i virtualenv.

Biblioteka ta, na przykład, stosuje Travis-Ci do testowania i zależy od pełnego scipy stosu (numpy, scipy, matplotlib, pytables pandy, etc), który jest zainstalowany poprzez apt z language=c.

https://github.com/rmcgibbo/mdtraj/blob/master/.travis.yml

0

apt-get, sugestię Roberta McGibbon, znajduje się jeszcze widocznie dość powolna.

Oto an approach from Dan Balchard za pomocą Minicondy, która wstępnie zainstaluje matplotlib i resztę stosu scipy na maszynie testowej Travis CI. Oto pełny plik .travis.yml:

language: python 
python: 
    - 2.7 
    - 3.3 
notifications: 
    email: false 

# Setup anaconda 
before_install: 
    - wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh 
    - chmod +x miniconda.sh 
    - ./miniconda.sh -b 
    - export PATH=/home/travis/miniconda/bin:$PATH 
    - conda update --yes conda 
    # The next couple lines fix a crash with multiprocessing on Travis and are not specific to using Miniconda 
    - sudo rm -rf /dev/shm 
    - sudo ln -s /run/shm /dev/shm 
# Install packages 
install: 
    - conda install --yes python=$TRAVIS_PYTHON_VERSION atlas numpy scipy matplotlib nose dateutil pandas statsmodels 
    # Coverage packages are on my binstar channel 
    - conda install --yes -c dan_blanchard python-coveralls nose-cov 
    - python setup.py install 

# Run test 
script: 
    - nosetests --with-cov --cov YOUR_PACKAGE_NAME_HERE --cov-config .coveragerc --logging-level=INFO 

# Calculate coverage 
after_success: 
    - coveralls --config_file .coveragerc