【问题标题】:Travis-ci matplotlib dependency and python3Travis-ci matplotlib 依赖和python3
【发布时间】:2013-06-27 09:28:13
【问题描述】:

我正在尝试使用我的项目设置一个 travis 连续构建系统,它的依赖项中有 numpy、scipy 和 matplotlib。我的目标是python 3.3。

在我的.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']                                                                                                                                                              

【问题讨论】:

标签: python numpy python-3.x matplotlib travis-ci


【解决方案1】:

如果您不需要针对多个 python 版本进行测试,最简单的技巧是告诉 travis 您的语言是c,然后从 apt-get 安装所有内容。这解决了 system_site_packages 和 virtualenv 的所有问题。

例如,该库使用 travis-ci 进行测试,并依赖于完整的 scipy 堆栈(numpy、scipy、matplotlib、pytables、pandas 等),通过 aptlanguage=c 安装。

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

【讨论】:

    【解决方案2】:

    Apt-get,Robert McGibbon 的建议,显然仍然很慢。

    这是使用 Miniconda 的 an approach from Dan Balchard,它将在 Travis CI 测试机器上预安装 matplotlib 和 scipy 堆栈的其余部分。这是完整的.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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多