Skip to content

Broken on Python 3.13.0 #581

Closed
Closed
@MilesCranmer

Description

@MilesCranmer

Importing juliacall on Python 3.13 (recently released) triggers the following error:

> import juliacall
---------------------------------------------------------------------------
SystemError                               Traceback (most recent call last)
SystemError: Type does not define the tp_name field.
ERROR: InitError: Error initializing 'juliacall.ValueBase'
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] init_c()
    @ PythonCall.JlWrap.Cjl ~/.julia/packages/PythonCall/Nr75f/src/JlWrap/C.jl:332
  [3] __init__()
    @ PythonCall.JlWrap.Cjl ~/.julia/packages/PythonCall/Nr75f/src/JlWrap/C.jl:337
  [4] run_module_init(mod::Module, i::Int64)
    @ Base ./loading.jl:1378
  [5] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
    @ Base ./loading.jl:1366
  [6] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any}, ignore_native::Nothing; register::Bool)
    @ Base ./loading.jl:1254
  [7] _include_from_serialized (repeats 2 times)
    @ ./loading.jl:1210 [inlined]
  [8] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{String, Int64}, DEPOT_PATH::Vector{String})
    @ Base ./loading.jl:2057
  [9] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:2527
 [10] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2388
 [11] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
 [12] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
 [13] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2375
 [14] macro expansion
    @ ./loading.jl:2314 [inlined]
 [15] macro expansion
    @ ./lock.jl:273 [inlined]
 [16] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2271
 [17] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
 [18] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
 [19] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2260
 [20] top-level scope
    @ none:8
during initialization of module Cjl---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
Cell In[1], line 1
----> 1 import juliacall

File ~/PermaDocuments/PythonCall.jl/pysrc/juliacall/__init__.py:287
    284     import juliacall.ipython
    285     juliacall.ipython.load_ipython_extension(ip)
--> 287 init()

File ~/PermaDocuments/PythonCall.jl/pysrc/juliacall/__init__.py:239, in init()
    237 res = jl_eval(script.encode('utf8'))
    238 if res is None:
--> 239     raise Exception('PythonCall.jl did not start properly')
    241 CONFIG['inited'] = True
    243 if CONFIG['opt_handle_signals'] is None:

Exception: PythonCall.jl did not start properly

It looks to be from this tp_name thing? https://peps.python.org/pep-0737/

cc @cjdoris @mkitti

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions