I am trying to prepare the 0.4 release of my package, Spectra.jl. I try to run the tests in Travis CI (Linux and OSX), but I get a weird error regarding PyPlot.
It seems that, when Travis CI try running the tests, it tries importing PyPlot during Spectra pre-compilation but can’t find it.
But PyPlot is in my REQUIRE file so it should be installed… Following a previous post on a similar subject, I setup my Travis yaml file as shown below, but still fails…
Thanks in advance for any help!
Here is the travis yaml file I uses:
# Documentation: http://docs.travis-ci.com/user/languages/julia/ language: julia os: - linux - osx julia: - 0.6 #before_install: # - if [ $TRAVIS_OS_NAME = linux ]; then sudo apt-get -qq update; fi addons: apt_packages: - gfortran notifications: email: false env: - PYTHON="" script: - if [ $TRAVIS_OS_NAME = osx ]; then brew install gcc; fi - if [[ -a .git/shallow ]]; then git fetch --unshallow; fi - julia -e 'Pkg.clone(pwd())' - julia -e 'Pkg.build("Spectra"); Pkg.test("Spectra")' after_success: - julia -e 'Pkg.add("Documenter")' - julia -e 'cd(Pkg.dir("Spectra")); include(joinpath("docs", "make.jl"))'
And here is the error shown during test initialisation on Travis CI:
================================================================================ INFO: Testing Spectra INFO: Installing matplotlib via the Conda matplotlib package... Solving environment: ...working... done ## Package Plan ## environment location: /home/travis/.julia/v0.6/Conda/deps/usr added / updated specs: - matplotlib The following packages will be downloaded: package | build ---------------------------|----------------- backports.functools_lru_cache-1.4| py27he8db605_1 9 KB pyparsing-2.2.0 | py27hf1513f8_1 93 KB pytz-2017.3 | py27h001bace_0 210 KB cycler-0.10.0 | py27hc7354d3_0 13 KB matplotlib-2.1.2 | py27h0e671d2_0 6.6 MB subprocess32-3.2.7 | py27h373dbce_0 40 KB ------------------------------------------------------------ Total: 6.9 MB The following NEW packages will be INSTALLED: backports.functools_lru_cache: 1.4-py27he8db605_1 cycler: 0.10.0-py27hc7354d3_0 matplotlib: 2.1.2-py27h0e671d2_0 pyparsing: 2.2.0-py27hf1513f8_1 pytz: 2017.3-py27h001bace_0 subprocess32: 3.2.7-py27h373dbce_0 Preparing transaction: ...working... done Verifying transaction: ...working... done Executing transaction: ...working... done WARNING: No working GUI backend found for matplotlib ERROR: LoadError: InitError: PyError (ccall(@pysym(:PyImport_ImportModule), PyPtr, (Cstring,), name) The Python package matplotlib.pyplot could not be found by pyimport. Usually this means that you did not install matplotlib.pyplot in the Python version being used by PyCall. PyCall is currently configured to use the Julia-specific Python distribution installed by the Conda.jl package. To install the matplotlib.pyplot module, you can use `pyimport_conda("matplotlib.pyplot", PKG)`, where PKG is the Anaconda package the contains the module matplotlib.pyplot, or alternatively you can use the Conda package directly (via `using Conda` followed by `Conda.add` etcetera). Alternatively, if you want to use a different Python distribution on your system, such as a system-wide Python (as opposed to the Julia-specific Python), you can re-configure PyCall with that Python. As explained in the PyCall documentation, set ENV["PYTHON"] to the path/name of the python executable you want to use, run Pkg.build("PyCall"), and re-launch Julia.