2013-06-27 97 views
5

我想安裝一個travis連續編譯系統與我的項目,其中依賴項中有numpy,scipy和matplotlib。我的目標是Python 3.3。Travis-ci matplotlib依賴和python3

在我的.travis.yml腳本中,我從apt-get安裝numpy和scipy,以及(可以肯定)從pip(僅限numpy)安裝。不幸的是,matplotlib build仍然認爲deps缺少numpy。我嘗試了幾乎所有在WEB上找到的方法,但其中大多數都不起作用(我認爲它們已經過時了)。

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 

以下是travis日誌的有趣部分。它表示依賴不滿足,但pip命令可以看到已經從apt安裝的numpy。

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

看看scipy travis.yml;他們肯定有'numpy'安裝:https://github.com/scipy/scipy/blob/master/.travis.yml –

回答

1

如果沒有需要測試針對多種Python版本,最簡單的辦法是告知特拉維斯,你的語言是c,然後安裝一切從易於得到。這解決了system_site_packages和virtualenv的所有問題。

這個庫,例如,使用特拉維斯-CI用於測試和取決於全SciPy的棧(numpy的,SciPy的,matplotlib,pytables,熊貓,等),其經由apt安裝有language=c上。

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

0

易於得到,羅伯特·麥吉本的建議下,依然顯出相當緩慢。

這裏的an approach from Dan Balchard使用Miniconda,它將在您的Travis CI測試機器上預安裝matplotlib和其餘的scipy stack。下面是完整的.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