You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: If you have a usage question (i.e. how to achieve something specific using this library + the CPython C-API) consider posting it to this project's GitHub Discussions board instead of creating an issue. Any question is welcome!
Describe what happened:
your examples code failed to run:
github.com/go-python/cpy3
../../dict.go:141:13: could not determine kind of name for C.PyDict_ClearFreeList
github.com/go-python/cpy3
../../dict.go:141:13: could not determine kind of name for C.PyDict_ClearFreeList
@eliranwong what Python version are you using? This library currently only works with Python 3.7. This error usually happens when trying to use a newer version of Python.
The C.PyDict_ClearFreeList function has been removed from the Python C API with Python 3.9.
It is possible to use newer version of Python if you remove some functions from go-python/cpy3 / datadog/go-python3 (bindings to stuff that has been removed from Python's C-API in newer version). For example, Python 3.8 works if you remove the bindings for PyEval_ReInitThreads, like I did here. More stuff might need to get removed for Python 3.9 and newer.
If you're having trouble installing Python 3.7 on your Linux distro, we have various examples of how to build it from source:
Activity
christian-korneck commentedon Jan 7, 2023
@eliranwong what Python version are you using? This library currently only works with Python 3.7. This error usually happens when trying to use a newer version of Python.
The C.PyDict_ClearFreeList function has been removed from the Python C API with Python 3.9.
It is possible to use newer version of Python if you remove some functions from
go-python/cpy3/datadog/go-python3(bindings to stuff that has been removed from Python's C-API in newer version). For example, Python 3.8 works if you remove the bindings forPyEval_ReInitThreads, like I did here. More stuff might need to get removed for Python 3.9 and newer.If you're having trouble installing Python 3.7 on your Linux distro, we have various examples of how to build it from source:
Hope this helps.
eliranwong commentedon Jan 7, 2023
oic, I am using python 3.9.2 that comes with Debian 11
soulteary commentedon May 21, 2023
@eliranwong try https://github.com/soulteary/docker-python-in-go/