boostorg / boostorg/python

Python 3.11 gives SystemError: type Boost.Python.enum has the Py_TPFLAGS_HAVE_GC flag but has no traverse function

Abierto
#400 3 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
537
Forks
223
Merge medio
11 h 22 min
PR fusionados (30 d)
2

Descripción

Up to Python 3.10 our Boost Python binding ran fine.
As of Python 3.11 we get the following error upon import of the binding;

`SystemError: type Boost.Python.enum has the Py_TPFLAGS_HAVE_GC flag but has no traverse function`

Running;
Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] on win32
boost_1_80_0
b2 -j%NUMBER_OF_PROCESSORS% python=3.11 --with-python --stage-libdir=lib64-msvc-14.3 --build-type=complete toolset=msvc-14.3 address-model=64 architecture=x86 debug-symbols=on stage

If I remove line 116 of libs\python\src\object\enum.cpp I don't get the error.

```

#if PY_VERSION_HEX < 0x03000000
| Py_TPFLAGS_CHECKTYPES
#endif
| Py_TPFLAGS_HAVE_GC /* <============== remove this line */
| Py_TPFLAGS_BASETYPE, /* tp_flags */

```

Is it safe to do this?

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.