Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Two calls needed to pyimport a module in Julia, the first one crashes

Abierto
#681 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
julia, python
Área
backend

Línea de trabajo

Comienza con el punto de entrada pyimport y las rutas de manejo de errores indicadas en PythonCall.Core/builtins.jl; después, reproduce la primera y la segunda importación utilizando las versiones indicadas de Julia, PythonCall, CondaPkg y sagelib. Se considera terminado cuando la primera llamada a pyimport("sage.all") se complete correctamente sin el TypeError del gestor de señales y la funcionalidad existente siga siendo utilizable.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug

Affects: PythonCall

I installed sagelib using CondaPkg in Julia:
pkg> conda add sagelib

But importing it requires two calls for sage.all. Here is a Julia session:

┌──(greg㉿ellipse)-[~]
└─$ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.11.7 (2025-09-08)
 _/ |\__'_|_|_|\__'_|  |
|__/                   |

julia> using PythonCall

julia> sg=pyimport("sage.all")
ERROR: Python: TypeError: signal handler must be signal.SIG_IGN, signal.SIG_DFL, or a callable object
Python stacktrace:
 [1] signal
   @ signal ~/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.12/signal.py:58
 [2] cysignals.pysignals.setsignal
   @ cysignals/pysignals.pyx:319
 [3] cysignals.pysignals.changesignal.__exit__
   @ cysignals/pysignals.pyx:373
 [4] init cysignals.pysignals
   @ cysignals/pysignals.pyx:488
 [5] init sage.interfaces.process (build/cythonized/sage/interfaces/process.c:7112)
   @ sage/interfaces/process.pyx:24
 [6] <module>
   @ ~/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.12/site-packages/sage/parallel/use_fork.py:22
 [7] <module>
   @ ~/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.12/site-packages/sage/dynamics/arithmetic_dynamics/endPN_automorphism_group.py:33
 [8] <module>
   @ ~/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.12/site-packages/sage/dynamics/arithmetic_dynamics/projective_ds.py:66
 [9] <module>
   @ ~/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.12/site-packages/sage/dynamics/arithmetic_dynamics/all.py:5
 [10] <module>
   @ ~/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.12/site-packages/sage/dynamics/all.py:25
 [11] <module>
   @ ~/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.12/site-packages/sage/all.py:127
Stacktrace:
 [1] pythrow()
   @ PythonCall.Core ~/.julia/packages/PythonCall/mkWc2/src/Core/err.jl:77
 [2] errcheck
   @ ~/.julia/packages/PythonCall/mkWc2/src/Core/err.jl:10 [inlined]
 [3] pyimport(m::String)
   @ PythonCall.Core ~/.julia/packages/PythonCall/mkWc2/src/Core/builtins.jl:1458
 [4] top-level scope
   @ REPL[2]:1

julia> sg=pyimport("sage.all")
Python: <module 'sage.all' from '/home/greg/.julia/environments/v1.11/.CondaPkg/.pixi/envs/default/lib/python3.12/site-packages/sage/all.py'>

julia> sg.factor(sg.ZZ(376655555555555555554444444444443332346777712))
Python: 2^4 * 53 * 163 * 12391 * 219914853701821004027468433435262943

julia> sg.log(2.3)
Python: 0.832909122935104

Kali Linux on WSL
PythonCall v0.9.28
CondaPkg v0.2.33
Python version:
Python: '3.12.11 | packaged by conda-forge | (main, Jun 4 2025, 15:10:57) [GCC 13.3.0]'
sagelib v10.7

I wonder what happens here since in pure Python that works.

Lenguaje dominante
Julia
Estrellas
1.1k
Forks
89
Merge medio
2 d 15 h
PR fusionados (30 d)
7

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de JuliaPy/PythonCall.jl

Todos los issues de JuliaPy/PythonCall.jl

Issues similares

Más issues de Julia

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.