Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken on Python 3.13.0 #581

Closed
MilesCranmer opened this issue Jan 1, 2025 · 1 comment
Closed

Broken on Python 3.13.0 #581

MilesCranmer opened this issue Jan 1, 2025 · 1 comment
Labels
bug Something isn't working

Comments

@MilesCranmer
Copy link
Contributor

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

@MilesCranmer MilesCranmer added the bug Something isn't working label Jan 1, 2025
@MilesCranmer
Copy link
Contributor Author

Wait, weird! 3.13.1 of Python is actually working. My error above is with 3.13.0.

I wonder if they made a backwards incompatible change to the C API and then reverted it? Sorry for the spam.

@MilesCranmer MilesCranmer changed the title Broken on Python 3.13 Broken on Python 3.13.0 Jan 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant