Skip to content

python 3.13: PyEval_CallObject is gone #775

Closed
@asottile-sentry

Description

@asottile-sentry

output from python3.13 -m pip wheel gojsonnet:

Processing /var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/tmppzk6cukh/sdist/gojsonnet-0.20.0.tar.gz
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Building wheels for collected packages: gojsonnet
  Building wheel for gojsonnet (setup.py): started
  Building wheel for gojsonnet (setup.py): finished with status 'error'
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [24 lines of output]
      running bdist_wheel
      running build
      running build_ext
      go: downloading sigs.k8s.io/yaml v1.1.0
      go: downloading gopkg.in/yaml.v2 v2.2.7
      building '_gojsonnet' extension
      creating build
      creating build/temp.macosx-11.0-arm64-cpython-313
      creating build/temp.macosx-11.0-arm64-cpython-313/python
      clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -g -O3 -Wall -mmacosx-version-min=11.0 -Wno-nullability-completeness -Wno-expansion-to-defined -Wno-undef-prefix -isysroot /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk -fPIC -Werror=unguarded-availability-new -I/opt/homebrew/opt/go/include -Icpp-jsonnet/include -I/Users/runner/work/pypi/pypi/venv/include -I/Users/runner/work/pypi/pypi/pythons/cp313-cp313/include/python3.13 -c python/_jsonnet.c -o build/temp.macosx-11.0-arm64-cpython-313/python/_jsonnet.o
      python/_jsonnet.c:189:14: error: call to undeclared function 'PyEval_CallObject'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          result = PyEval_CallObject(ctx->callback, arglist);
                   ^
      python/_jsonnet.c:189:12: error: incompatible integer to pointer conversion assigning to 'PyObject *' (aka 'struct _object *') from 'int' [-Wint-conversion]
          result = PyEval_CallObject(ctx->callback, arglist);
                 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      python/_jsonnet.c:229:14: error: call to undeclared function 'PyEval_CallObject'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          result = PyEval_CallObject(ctx->callback, arglist);
                   ^
      python/_jsonnet.c:229:12: error: incompatible integer to pointer conversion assigning to 'PyObject *' (aka 'struct _object *') from 'int' [-Wint-conversion]
          result = PyEval_CallObject(ctx->callback, arglist);
                 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      4 errors generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for gojsonnet
  Running setup.py clean for gojsonnet
Failed to build gojsonnet

seems like this should be easy to replace with PyObject_CallObject(...)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions