All'interno del mio progetto, I (necessario) utilizzare una funzionalità inclusa in Numpy 1.8, ma non nelle versioni precedenti (l'opzione formatter
di).Installa Numpy 1.8 in Travis CI
Poiché le macchine di compilazione di Travis CI sono basate su Ubuntu 12.04, per impostazione predefinita sono disponibile solo Numpy 1.6.1. Ho poi provato ad installare il Numpy-1.8.1-Debian-pacchetto per Ubuntu 14.04 ed è dipendenze manualmente, che ha portato ad ulteriori problemi:
necessario installare i pacchetti libblas3
e liblapack3
poter installare Numpy 1.8, che non è possibile quando liblapack3gf
e libblas3gf
sono installati sul sistema (che sono lì per impostazione predefinita), poiché i pacchetti "li interromperanno". Se I viene installato tramite lo stesso apt-get
-comando (che non è il caso su un sistema Ubuntu standard, ne ho anche installato uno sulla mia macchina locale per essere sicuro). Se poi provo a disinstallare Vlibatlas3gf-baseV, di nuovo liblapack3gf
e libblas3gf
vengono installati di nuovo automaticamente.
Non so davvero come gestire questo problema, o come aggirarlo per ottenere Numpy 1.8 che funziona con Travis. Ho anche provato i suggerimenti per l'aggiornamento di Numpy tramite pip
fornito here, ma in Travis questo non ha funzionato.
Qualsiasi aiuto è molto apprezzato!
Grazie mille!
La soluzione:
ho completato la risposta di RTH al seguente .travis.yml
-file, con ulteriore aiuto da here e here:
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
Ora tutto funziona come previsto. Nota: non sarà non essere in grado di importare e utilizzare PyLab con questa configurazione, vedere i commenti sotto per le spiegazioni.
Probabilmente necessario installare PyQt4 importare pylab (si veda questo [risposta] (https://stackoverflow.com/questions/19231944/anaconda-unable-to-import -pylab)), 'sudo apt-get install python-qt4'. Come nota a margine, l'uso di 'pylab' dovrebbe essere evitato quando possibile, specialmente in un ambiente non interattivo, e le importazioni esplicite sono da preferire:' import numpy come np', 'importa matplotlib.pyplot as plt' (se tu bisogno di grafici) ecc. – rth
@ rth Perché dovrebbe essere evitato? Perché se è ragionevole evitarlo, tenderei piuttosto a modificare il mio codice piuttosto che cercare di far funzionare PyLab in Travis. – mindm49907
Beh, se esegui 'da pylab import *' molte cose vengono importate nello spazio dei nomi, da 'numpy',' scipy', 'matplotlib' ecc e non hai realmente il controllo di ciò che sta accadendo. Soprattutto se fai test unitari, è molto meglio importare esplicitamente i moduli richiesti. Questo non è in realtà correlato al tuo problema, ma è solo che il tuo backend matplotlib di default sembra richiedere PyQt4 (sia che tu usi pylab o meno), puoi anche cambiare il backend per dire "Agg" per evitare il problema. – rth