Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

590
Visualizações
no se puede llamar al código julia desde Python con PyCall, cuyo código llama a Python con Pycall

Tengo un algoritmo de back-end que hace llamadas de julia, lo hago a través del paquete PyCall. sin embargo, uno de los paquetes en julia se actualizó recientemente y hace uso de PyCall. No importa lo que intente hacer, siempre obtengo un error. Si configuro pycall en julia a través de Pkg.build ("PyCall"), puedo llamar al paquete, sin embargo, python no puede llamar a julia. si configuro pycall en python3 a través de julia.install(), entonces el paquete no puede ejecutarse correctamente en julia.

para reproducir esto aquí hay un ejemplo rápido:

prueba.jl

 using Pkg Pkg.add("PyCall") ENV["PYTHON"]="" Pkg.add(PackageSpec(url="https://bitbucket.org/SSamanipour/safd.jl/src/master/")) Pkg.build("SAFD") Pkg.test("SAFD")

prueba.py

 from julia import Main as jl jl.include("test.jl")

si ejecuto python3 test.py

Aparece un error porque ese python específico no está configurado en el pycall compartido.

lo que me gustaria es que el pycall en python no sea el mismo para python. parece que si configuras pycall en uno forzará el otro.

Intenté usar juliacall, sin embargo, si uso pycall con él, parece que también se rompe.

si intento tener ENV["PYTHON"]="python3" , no puedo ejecutar el paquete SAFD.

Cualquier ayuda sería muy apreciada, ya que llevo unos días en esto y probé varias soluciones y todo parece darme un error diferente.

algo de información: haciendo esto en un sistema operativo aws amazon2 linux y una instancia aws r5.large.

estoy usando python 3.10.0

versioninfo() Julia Versión 1.6.3 Commit ae8452a9e0 (2021-09-23 17:34 UTC) Información de la plataforma: SO: Linux (x86_64-pc-linux-gnu) CPU: Intel(R) Xeon(R) Platinum 8175M CPU @ 2,50 GHz TAMAÑO DE PALABRA: 64 LIBM: libopenlibm LLVM: libLLVM-11.0.1 (ORCJIT, skylake-avx512)

EDITAR:

Terminé resolviendo el problema. El paquete que estaba tratando de usar actualizó sus dependencias, cuando se compila, actualiza automáticamente el conda python con todos los paquetes que necesita. Sin embargo, si no está construido por conda, asumirá que las dependencias están ahí. Lo que me sorprende mucho es que el mensaje de error nunca indicó nada sobre un paquete específico. Solo lo descubrí un poco al azar.

Una cosa está clara es que no puede tener dos pythons diferentes, pycall solo configura un python para ir y venir entre python y julia.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Parece que tienes 2 Python en tu sistema:

  • el primero instalado después de ENV["PYTHON"]="";Pkg.build("PyCall") --> esta es la forma predeterminada de instalar PyCall en Julia para que todo funcione (esto es en realidad un Miniconda Python)
  • sistema Python que comienzas con python3

Básicamente, mezclar esos 2 pitones y hacer que todo funcione es como encontrar una aguja en un pajar con los ojos vendados. En lugar de eso, necesita usar un Python para todo y para que las cosas funcionen sin problemas, debería ser el Miniconda Python que Julia instaló cuando hizo ENV["PYTHON"]="";Pkg.build("PyCall") .

Para encontrar Python, desea usar do en su consola Julia:

 julia> using PyCall julia> PyCall.python "/home/ubuntu/.julia/conda3/python.exe"

¡Ahora encontraste el código de Python que necesitas! Entonces, lo que ejecutas en bash es:

 /home/ubuntu/.julia/conda3/python.exe test.py
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda