Skip to content

Libraries loaded via _jll packages are visible inside PythonCall environment. #519

Closed
@lassepe

Description

@lassepe

Disclaimer: I am not sure whether this issue should be posted here or in CondaPkg.jl.

Related issues:
JuliaPackaging/Yggdrasil#9028
avik-pal/Wandb.jl#39

Affects: PythonCall

Describe the bug
Over at Wandb.jl we have observed that, when OpenSSL_jll@v3 is loaded before Wandb.jl (which wraps the Wandb python client via PythonCall), the package fails. When OpenSSL_jll@v3 is loaded after Wandb.jl or when we downgrade to OpenSSL_jll@v1, everything works as expected. This suggests that the libraries loaded via julia _jll's propagate into the python environment.

Expected Behavior:

I would hope that those two environments are isolated. If that is not possible, package authors using PythonCall should be made aware of having to pin JLL's at a version consistent with their dependencies (which is annoying but better than "hoping" that the right dependency gets loaded).

Reproducer

using OpenSSL_jll
using Wandb: Wandb

# trigger ssl error
function provoke_error(logger)
    logging_dict = Dict{String,Any}()
    logging_dict["samples"] = Wandb.Image(rand(2, 2))
    Wandb.log(logger, logging_dict; step=1)
end

logger = Wandb.WandbLogger(; project="test")
provoke_error(logger)

System Info

  • Ubuntu 22.04
  • Julia 1.10.4
  • PythonCall 0.9.20

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions