Skip to content

conda create mixing vc10 and vc14 packages #4407

@jkseppan

Description

@jkseppan

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    locked[bot] locked due to inactivity

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions