JuliaPy / JuliaPy/PythonCall.jl
OpenSSL version restriction outdated
- 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