JuliaPy / JuliaPy/PythonCall.jl

OpenSSL version restriction outdated

Đang mở
#612 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Julia
Star
1.1k
Fork
86
Merge trung bình
1 ngày 22 giờ
Pull request đã merge (30 ngày)
3

Mô tả

Just raising this as a new issue, as the previous thread was a question, so I'm aware that my response might not be seen.

> I believe [Julia now uses a more up to date version of OpenSSL](https://github.com/JuliaLang/julia/pull/58247), which is now causing problems when installing certain packages with JuliaCall/PythonCall.
>
> In short, the following error is commonly encountered (on Linux at least)
>
> ```
> Traceback (most recent call last):
> File "", line 1, in
> File "/home/wilf/.julia/packages/PythonCall/WMWY0/src/JlWrap/module.jl", line 27, in seval
> return self._jl_callmethod($(pyjl_methodnum(pyjlmodule_seval)), expr)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> juliacall.JuliaError: InitError: could not load library "/home/wilf/.julia/artifacts/a696e1e3e6b8d3c2c4b67609357ebc5c35eabde1/lib/libssl.so"
> /lib/x86_64-linux-gnu/libcrypto.so.3: version `OPENSSL_3.3.0' not found (required by /home/wilf/.julia/artifacts/a696e1e3e6b8d3c2c4b67609357ebc5c35eabde1/lib/libssl.so)
> Stacktrace:
> [1] dlopen(s::String, flags::UInt32; throw_error::Bool)
> @ Base.Libc.Libdl ./libdl.jl:117
> [2] dlopen(s::String, flags::UInt32)
> @ Base.Libc.Libdl ./libdl.jl:116
> [3] macro expansion
> @ ~/.julia/packages/JLLWrappers/GfYNv/src/products/library_generators.jl:63 [inlined]
> [4] __init__()
> @ OpenSSL_jll ~/.julia/packages/OpenSSL_jll/WaTt1/src/wrappers/x86_64-linux-gnu.jl:16
> [5] run_module_init(mod::Module, i::Int64)
> @ Base ./loading.jl:1134
> [6] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
> @ Base ./loading.jl:1122
> [7] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any})
> @ Base ./loading.jl:1067
> [8] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128)
> @ Base ./loading.jl:1581
> [9] _tryrequire_from_serialized(modkey::Base.PkgId, build_id::UInt128)
> @ Base ./loading.jl:1445
> [10] _tryrequire_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String)
> @ Base ./loading.jl:1524
> [11] _require(pkg::Base.PkgId, env::String)
> @ Base ./loading.jl:1990
> [12] __require_prelocked(uuidkey::Base.PkgId, env::String)
> @ Base ./loading.jl:1812
> [13] #invoke_in_world#3
> @ ./essentials.jl:926 [inlined]
> [14] invoke_in_world
> @ ./essentials.jl:923 [inlined]
> [15] _require_prelocked(uuidkey::Base.PkgId, env::String)
> @ Base ./loading.jl:1803
> [16] macro expansion
> @ ./loading.jl:1790 [inlined]
> [17] macro expansion
> @ ./lock.jl:267 [inlined]
> [18] __require(into::Module, mod::Symbol)
> @ Base ./loading.jl:1753
> [19] #invoke_in_world#3
> @ ./essentials.jl:926 [inlined]
> [20] invoke_in_world
> @ ./essentials.jl:923 [inlined]
> [21] require(into::Module, mod::Symbol)
> @ Base ./loading.jl:1746
> [22] eval
> @ ./boot.jl:385 [inlined]
> [23] eval
> @ ./Base.jl:88 [inlined]
> [24] pyjlmodule_seval(self::Module, expr::Py)
> @ PythonCall.JlWrap ~/.julia/packages/PythonCall/WMWY0/src/JlWrap/module.jl:13
> [25] _pyjl_callmethod(f::Any, self_::Ptr{PythonCall.C.PyObject}, args_::Ptr{PythonCall.C.PyObject}, nargs::Int64)
> @ PythonCall.JlWrap ~/.julia/packages/PythonCall/WMWY0/src/JlWrap/base.jl:67
> [26] _pyjl_callmethod(o::Ptr{PythonCall.C.PyObject}, args::Ptr{PythonCall.C.PyObject})
> @ PythonCall.JlWrap.Cjl ~/.julia/packages/PythonCall/WMWY0/src/JlWrap/C.jl:63
> during initialization of module OpenSSL_jll
> ```
>
> To reproduce:
> 1. Create a new python venv using `python3.12 -m venv .venv`
> 2. `pip install juliacall` (by default this installs Julia 1.11.5)
> 3. Start python and run
> ```
>>> from juliacall import Main as jl
>>> from juliapkg import add, resolve
>>> add("Yao", "5872b779-8223-5990-8dd0-5abbb0748c8c") # other packages with OpenSSL deps also cause the error
>>> resolve()
>>> jl.seval("using Yao")
> ```
>
> Info:
> Python: 3.12.10
> Julia: 1.11.5
> OS: Linux

_Originally posted by @wilf-phasecraft in [#587](https://github.com/JuliaPy/PythonCall.jl/issues/587#issuecomment-2838271630)_

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Reproduce the failure with Python 3.12.10, Julia 1.11.5, juliacall, and the Yao example, then inspect the OpenSSL_jll wrapper and artifact-loading path shown in the traceback. Done means the reported Linux environment can load the OpenSSL dependency without the missing OPENSSL_3.3.0 error.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
julia, python
Lĩnh vực
build-system
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
38/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.