Ubuntu Conda环境下Julia安装BlackBoxOptim遇libmbedtls.so加载错误求助
解决Conda环境中Julia加载BlackBoxOptim时libmbedx509.so.4缺失的问题
无需手动操作的优先方案
- 激活你的Conda环境,执行命令安装适配的Mbed TLS:
conda install -c conda-forge mbedtls - 启动Julia前,让系统优先加载Conda环境的库路径:
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH - 启动Julia后,重新预编译相关包:
using Pkg Pkg.precompile(["MbedTLS", "HTTP", "BlackBoxOptim"])
手动指定库路径的方法
如果上面的方案无效,可在Julia内部动态设置库路径:
ENV["LD_LIBRARY_PATH"] = joinpath(ENV["CONDA_PREFIX"], "lib") * ":" * get(ENV, "LD_LIBRARY_PATH", "") using Pkg Pkg.precompile(["MbedTLS", "HTTP", "BlackBoxOptim"])
版本适配软链接方案
若Conda环境中Mbed TLS的版本号与要求的libmbedx509.so.4不匹配:
- 查看Conda环境下的Mbed TLS文件:
ls $CONDA_PREFIX/lib/libmbedx509.so* - 创建对应版本的软链接(假设实际版本是
libmbedx509.so.3,替换成你看到的版本号):ln -s $CONDA_PREFIX/lib/libmbedx509.so.3 $CONDA_PREFIX/lib/libmbedx509.so.4 - 重启Julia后尝试导入BlackBoxOptim
切换到Julia内置MbedTLS版本
如果系统/Conda的库冲突问题无法解决,直接用Julia官方维护的版本:
using Pkg Pkg.rm("MbedTLS") Pkg.add("MbedTLS"; preserve=PRESERVE_ALL) Pkg.precompile()
内容的提问来源于stack exchange,提问作者Anthony Nash
相关产品推荐
相关产品推荐

