On 9/2/25 14:51, Rob Cliffe via Python-list wrote:
Hello, can anyone help?  All assistance gratefully received.  I am running python 3.13.3 on a Windows 11 machine and trying to do
     pip install matplotlib
(No, I don't need to say "python -m ...", I am running the right version of python.exe.) This starts by generating the following output (which I can catch by redirecting it to a file)

Collecting matplotlib
   Using cached matplotlib-3.10.6.tar.gz (34.8 MB)
   Installing build dependencies: started
   Installing build dependencies: finished with status 'done'
   Getting requirements to build wheel: started
   Getting requirements to build wheel: finished with status 'done'
   Installing backend dependencies: started
   Installing backend dependencies: finished with status 'done'
   Preparing metadata (pyproject.toml): started
   Preparing metadata (pyproject.toml): finished with status 'error'

then prints error messages on the screen which are scrolled out too fast to see, but end as follows:

3: note: in expansion of macro 'PYBIND11_COMPAT_STRDUP'
                       rec_fget->doc = PYBIND11_COMPAT_STRDUP(rec_fget- >doc);
                                        ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\robcl\AppData\Local\Temp\pip-build- env-1ud913ho\overlay\Lib\site-packages\pybind11\include/pybind11/ pybind11.h:248:36: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
        #    define PYBIND11_COMPAT_STRDUP strdup
                                           ^~~~~~
C:\Users\robcl\AppData\Local\Temp\pip-build- env-1ud913ho\overlay\Lib\site-packages\pybind11\include/pybind11/ pybind11.h:2379:33: note: in expansion of macro 'PYBIND11_COMPAT_STRDUP'                        rec_fget->doc = PYBIND11_COMPAT_STRDUP(rec_fget- >doc);
                                        ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\robcl\AppData\Local\Temp\pip-build- env-1ud913ho\overlay\Lib\site-packages\pybind11\include/pybind11/ pybind11.h:248:36: error: there are no arguments to 'strdup' that depend on a template parameter, so a declaration of 'strdup' must be available [-fpermissive]
        #    define PYBIND11_COMPAT_STRDUP strdup
                                           ^~~~~~
C:\Users\robcl\AppData\Local\Temp\pip-build- env-1ud913ho\overlay\Lib\site-packages\pybind11\include/pybind11/ pybind11.h:2387:33: note: in expansion of macro 'PYBIND11_COMPAT_STRDUP'                        rec_fset->doc = PYBIND11_COMPAT_STRDUP(rec_fset- >doc);
                                        ^~~~~~~~~~~~~~~~~~~~~~
       In file included from ../src/_backend_agg_basic_types.h:17,
                        from ../src/_backend_agg.h:41,
                        from ../src/_backend_agg_wrapper.cpp:6:
      ../src/py_adaptors.h: In member function 'void mpl::PathIterator::set(pybind11::object, pybind11::object, bool, double)':       ../src/py_adaptors.h:96:57: warning: comparison of integer expressions of different signedness: 'pybind11::ssize_t' {aka 'int'} and 'unsigned int' [-Wsign-compare]                    if (m_codes.ndim() != 1 || m_codes.shape(0) != m_total_vertices) {
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
       ../src/_backend_agg_wrapper.cpp: In lambda function:
      ../src/_backend_agg_wrapper.cpp:253:37: warning: narrowing conversion of 'renderer->RendererAgg::get_height()' from 'unsigned int' to 'int' inside { } [-Wnarrowing]
                        renderer->get_height(),
                        ~~~~~~~~~~~~~~~~~~~~^~
      ../src/_backend_agg_wrapper.cpp:253:37: warning: narrowing conversion of 'renderer->RendererAgg::get_height()' from 'unsigned int' to 'int' inside { } [-Wnarrowing]       ../src/_backend_agg_wrapper.cpp:254:36: warning: narrowing conversion of 'renderer->RendererAgg::get_width()' from 'unsigned int' to 'int' inside { } [-Wnarrowing]
                        renderer->get_width(),
                        ~~~~~~~~~~~~~~~~~~~^~
      ../src/_backend_agg_wrapper.cpp:254:36: warning: narrowing conversion of 'renderer->RendererAgg::get_width()' from 'unsigned int' to 'int' inside { } [-Wnarrowing]       ../src/_backend_agg_wrapper.cpp:258:39: warning: narrowing conversion of '(renderer->RendererAgg::get_width() * 4)' from 'unsigned int' to 'int' inside { } [-Wnarrowing]
                        renderer->get_width() * 4,
                        ~~~~~~~~~~~~~~~~~~~~~~^~~
      ../src/_backend_agg_wrapper.cpp:258:39: warning: narrowing conversion of '(renderer->RendererAgg::get_width() * 4)' from 'unsigned int' to 'int' inside { } [-Wnarrowing]
       ninja: build stopped: subcommand failed.
There are two roots here:

(1) it's not finding a prebuilt wheel. You can see that because it's proposing to use the source distribution instead:

> Collecting matplotlib
>    Using cached matplotlib-3.10.6.tar.gz (34.8 MB)

and so it, in the initial output.

(2) Although at this point all hope of success is often lost on Windows, it's still going to try to compile things. It found gcc - there are messages from g++ in the output. Last I know, Pybind11 only builds with the Microsoft compiler because it uses msvc-specific types which gcc does not know about.

Since the matplotlib project definition provides wheels for Python 3.13 on Windows (not just the main Python, but also the free-threaded versions), you need to figure out why the resolver doesn't think there's anything applicable available.


--
https://mail.python.org/mailman3//lists/python-list.python.org

Reply via email to