-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
As of recently, matplotlib builds on appveyor have been failing, specifically with Python 3.4. The proximate cause is this link failure:
Creating library build\temp.win-amd64-3.4\Release\src\_png.lib and object build\temp.win-amd64-3.4\Release\src\_png.exp
png.lib(pngerror.c.obj) : error LNK2019: unresolved external symbol __report_rangecheckfailure referenced in function png_fixed_error
png.lib(pngwutil.c.obj) : error LNK2001: unresolved external symbol __report_rangecheckfailure
z.lib(inftrees.obj) : error LNK2001: unresolved external symbol __report_rangecheckfailure
png.lib(pngerror.c.obj) : error LNK2019: unresolved external symbol __imp___acrt_iob_func referenced in function png_chunk_error
png.lib(pngerror.c.obj) : error LNK2019: unresolved external symbol __imp___stdio_common_vfprintf referenced in function _vfprintf_l
build\lib.win-amd64-3.4\matplotlib\_png.pyd : fatal error LNK1120: 3 unresolved externals
error: command 'c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\Bin\\amd64\\link.exe' failed with exit status 1120
I surmise this is because of mixing vc10 and vc14 libraries. The following is part of the output of conda create -q -n test-environment python=%PYTHON_VERSION% pip setuptools numpy python-dateutil freetype=2.6 msinttypes "tk=8.5" pyparsing pytz tornado "libpng>=1.6.21,<1.7" "zlib=1.2" "cycler>=0.10" nose mock sphinx
(where PYTHON_VERSION is 3.4)>
The following NEW packages will be INSTALLED:
...
freetype: 2.6.3-vc14_1 conda-forge [vc14]
imagesize: 0.7.1-py34_0 conda-forge
jinja2: 2.8-py34_1 conda-forge
libpng: 1.6.28-vc14_0 conda-forge [vc14]
...
python: 3.4.5-2 conda-forge
...
vc: 14-0 conda-forge
vs2010_runtime: 10.00.40219.1-2 defaults
vs2015_runtime: 14.0.25420-0 conda-forge
...
I'm not at all clear on the vc10 and vc14 distinction, but I suspect you wouldn't want to mix different runtime versions. The best documentation that I found via Google is https://github.com/conda/conda/wiki/VC-features which indicates that py34 should correspond to vc10.
Is there something we could do in the conda create
command that would prevent installing any vc14 packages?
AppVeyor config file: https://github.com/matplotlib/matplotlib/blob/master/appveyor.yml
Output of a failing build: https://ci.appveyor.com/project/mdboom/matplotlib/build/1.0.4098/job/gwqemmaetj9u3wt7