Julia1.8.2安装PyPlot包,build PyCall总是出错,各位大佬帮看看

我的环境:
操作系统:UOS
Python3.11.0安装成功;Julia1.8.2安装PyPlot包,build PyCall总是出错,错误代码如下:

julia> ENV["PYTHON"]="/usr/local/python3.11/bin/python3.11"
"/usr/local/python3.11/bin/python3.11"

(@v1.8) pkg> add PyPlot
    Updating registry at `~/.julia/registries/General.toml`
   Resolving package versions...
    Updating `~/.julia/environments/v1.8/Project.toml`
  [d330b81b] + PyPlot v2.11.0
    Updating `~/.julia/environments/v1.8/Manifest.toml`
  [8f4d0f93] + Conda v1.7.0
  [438e738f] + PyCall v1.94.1
  [d330b81b] + PyPlot v2.11.0
  [81def892] + VersionParsing v1.3.0

julia> ENV["PYTHON"]="/usr/local/python3.11/bin/python3.11"
"/usr/local/python3.11/bin/python3.11"

julia> Pkg.build("PyCall")
    Building Conda ─→ `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/6e47d11ea2776bc5627421d59cdcc1296c058071/build.log`
    Building PyCall → `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/53b8b07b721b77144a0fbbbc2675222ebf40a02d/build.log`
ERROR: Error building `PyCall`: 
ERROR: LoadError: Couldn't find libpython; check your PYTHON environment variable.

The python executable we tried was /usr/local/python3.11/bin/python3.11 (= version 3.11).
Re-building with
    ENV["PYCALL_DEBUG_BUILD"] = "yes"
may provide extra information for why it failed.

Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] find_libpython(python::String; _dlopen::typeof(Base.Libc.Libdl.dlopen))
   @ Main ~/.julia/packages/PyCall/ygXW2/deps/buildutils.jl:72
 [3] find_libpython(python::String)
   @ Main ~/.julia/packages/PyCall/ygXW2/deps/buildutils.jl:40
 [4] top-level scope
   @ ~/.julia/packages/PyCall/ygXW2/deps/build.jl:82
 [5] include(fname::String)
   @ Base.MainInclude ./client.jl:476
 [6] top-level scope
   @ none:5
in expression starting at /home/genn/.julia/packages/PyCall/ygXW2/deps/build.jl:43
Stacktrace:
  [1] pkgerror(msg::String)
    @ Pkg.Types /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Types.jl:67
  [2] (::Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String})()
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1060
  [3] withenv(::Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String}, ::Pair{String, String}, ::Vararg{Pair{String}})
    @ Base ./env.jl:172
  [4] (::Pkg.Operations.var"#107#112"{String, Bool, Bool, Bool, Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String}, Pkg.Types.PackageSpec})()
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1619
  [5] with_temp_env(fn::Pkg.Operations.var"#107#112"{String, Bool, Bool, Bool, Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String}, Pkg.Types.PackageSpec}, temp_env::String)
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1493
  [6] (::Pkg.Operations.var"#105#110"{Dict{String, Any}, Bool, Bool, Bool, Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String}, Pkg.Types.Context, Pkg.Types.PackageSpec, String, Pkg.Types.Project, String})(tmp::String)
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1582
  [7] mktempdir(fn::Pkg.Operations.var"#105#110"{Dict{String, Any}, Bool, Bool, Bool, Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String}, Pkg.Types.Context, Pkg.Types.PackageSpec, String, Pkg.Types.Project, String}, parent::String; prefix::String)
    @ Base.Filesystem ./file.jl:764
  [8] mktempdir(fn::Function, parent::String) (repeats 2 times)
    @ Base.Filesystem ./file.jl:760
  [9] sandbox(fn::Function, ctx::Pkg.Types.Context, target::Pkg.Types.PackageSpec, target_path::String, sandbox_path::String, sandbox_project_override::Pkg.Types.Project; preferences::Dict{String, Any}, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool)
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1540
 [10] build_versions(ctx::Pkg.Types.Context, uuids::Set{Base.UUID}; verbose::Bool)
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1041
 [11] build(ctx::Pkg.Types.Context, uuids::Set{Base.UUID}, verbose::Bool)
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:898
 [12] build(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; verbose::Bool, kwargs::Base.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}})
    @ Pkg.API /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:1029
 [13] build(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:156
 [14] build(pkgs::Vector{Pkg.Types.PackageSpec})
    @ Pkg.API /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:145
 [15] #build#99
    @ /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:144 [inlined]
 [16] build
    @ /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:144 [inlined]
 [17] #build#98
    @ /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:143 [inlined]
 [18] build(pkg::String)
    @ Pkg.API /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:143
 [19] top-level scope
    @ REPL[7]:1
julia> ENV["PYCALL_DEBUG_BUILD"] = "yes"
"yes"

julia> Pkg.build("PyCall")
    Building Conda ─→ `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/6e47d11ea2776bc5627421d59cdcc1296c058071/build.log`
    Building PyCall → `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/53b8b07b721b77144a0fbbbc2675222ebf40a02d/build.log`
ERROR: Error building `PyCall`: 
DEBUG is_windows = False
DEBUG is_apple = False
DEBUG Candidate: None
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.a
DEBUG Found: /usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.a
DEBUG Candidate: /usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/libpython3.11.a
DEBUG Found: /usr/local/python3.11/lib/libpython3.11.a
DEBUG Candidate: /usr/local/python3.11/lib/libpython3.11.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/libpython3.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/libpython.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/libpython3.11.a
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/libpython3.11.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/libpython3.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/libpython.so
DEBUG Not found.
DEBUG Candidate: libpython3.7m.so.1.0
DEBUG Not found.
dlopen(/usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.a) ==> ErrorException("could not load library \"/usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.a\"\n/usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.a.so: 无法打开共享对象文件: 没有那个文件或目录")
dlopen(/usr/local/python3.11/lib/libpython3.11.a) ==> ErrorException("could not load library \"/usr/local/python3.11/lib/libpython3.11.a\"\n/usr/local/python3.11/lib/libpython3.11.a.so: 无法打开共享对象文件: 没有那个文件或目录")
dlopen(libpython3.11) ==> ErrorException("could not load library \"libpython3.11\"\nlibpython3.11.so: 无法打开共享对象文件: 没有那个文件或目录")
dlopen(libpython3.11) ==> ErrorException("could not load library \"libpython3.11\"\nlibpython3.11.so: 无法打开共享对象文件: 没有那个文件或目录")
dlopen(libpython3) ==> ErrorException("could not load library \"libpython3\"\nlibpython3.so: 无法打开共享对象文件: 没有那个文件或目录")
dlopen(libpython) ==> ErrorException("could not load library \"libpython\"\nlibpython.so: 无法打开共享对象文件: 没有那个文件或目录")
ERROR: LoadError: Couldn't find libpython; check your PYTHON environment variable.

The python executable we tried was /usr/local/python3.11/bin/python3.11 (= version 3.11).
Re-building with
    ENV["PYCALL_DEBUG_BUILD"] = "yes"
may provide extra information for why it failed.

Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] find_libpython(python::String; _dlopen::typeof(Base.Libc.Libdl.dlopen))
   @ Main ~/.julia/packages/PyCall/ygXW2/deps/buildutils.jl:72
 [3] find_libpython(python::String)
   @ Main ~/.julia/packages/PyCall/ygXW2/deps/buildutils.jl:40
 [4] top-level scope
   @ ~/.julia/packages/PyCall/ygXW2/deps/build.jl:82
 [5] include(fname::String)
   @ Base.MainInclude ./client.jl:476
 [6] top-level scope
   @ none:5
in expression starting at /home/genn/.julia/packages/PyCall/ygXW2/deps/build.jl:43
Stacktrace:
  [1] pkgerror(msg::String)
    @ Pkg.Types /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Types.jl:67
  [2] (::Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String})()
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1060
  [3] withenv(::Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String}, ::Pair{String, String}, ::Vararg{Pair{String}})
    @ Base ./env.jl:172
  [4] (::Pkg.Operations.var"#107#112"{String, Bool, Bool, Bool, Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String}, Pkg.Types.PackageSpec})()
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1619
  [5] with_temp_env(fn::Pkg.Operations.var"#107#112"{String, Bool, Bool, Bool, Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String}, Pkg.Types.PackageSpec}, temp_env::String)
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1493
  [6] (::Pkg.Operations.var"#105#110"{Dict{String, Any}, Bool, Bool, Bool, Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String}, Pkg.Types.Context, Pkg.Types.PackageSpec, String, Pkg.Types.Project, String})(tmp::String)
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1582
  [7] mktempdir(fn::Pkg.Operations.var"#105#110"{Dict{String, Any}, Bool, Bool, Bool, Pkg.Operations.var"#66#73"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String}, Pkg.Types.Context, Pkg.Types.PackageSpec, String, Pkg.Types.Project, String}, parent::String; prefix::String)
    @ Base.Filesystem ./file.jl:764
  [8] mktempdir(fn::Function, parent::String) (repeats 2 times)
    @ Base.Filesystem ./file.jl:760
  [9] sandbox(fn::Function, ctx::Pkg.Types.Context, target::Pkg.Types.PackageSpec, target_path::String, sandbox_path::String, sandbox_project_override::Pkg.Types.Project; preferences::Dict{String, Any}, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool)
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1540
 [10] build_versions(ctx::Pkg.Types.Context, uuids::Set{Base.UUID}; verbose::Bool)
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1041
 [11] build(ctx::Pkg.Types.Context, uuids::Set{Base.UUID}, verbose::Bool)
    @ Pkg.Operations /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:898
 [12] build(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; verbose::Bool, kwargs::Base.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}})
    @ Pkg.API /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:1029
 [13] build(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:156
 [14] build(pkgs::Vector{Pkg.Types.PackageSpec})
    @ Pkg.API /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:145
 [15] #build#99
    @ /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:144 [inlined]
 [16] build
    @ /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:144 [inlined]
 [17] #build#98
    @ /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:143 [inlined]
 [18] build(pkg::String)
    @ Pkg.API /usr/local/julia-1.8.2/share/julia/stdlib/v1.8/Pkg/src/API.jl:143
 [19] top-level scope
    @ REPL[10]:1

就是因为加了这句话,但可能这位置并不对;
不加这句话应该就ok,会调用用系统自带的python

是的,调用系统自带的python就解决了,但是我就想再问一个问题了:自己编译安装的python为什么会缺失这些文件呢?

块引用
ERROR: Error building PyCall:
DEBUG is_windows = False
DEBUG is_apple = False
DEBUG Candidate: None
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.a
DEBUG Found: /usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.a
DEBUG Candidate: /usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/libpython3.11.a
DEBUG Found: /usr/local/python3.11/lib/libpython3.11.a
DEBUG Candidate: /usr/local/python3.11/lib/libpython3.11.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/libpython3.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/lib/libpython.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/libpython3.11.a
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/libpython3.11.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/libpython3.so
DEBUG Not found.
DEBUG Candidate: /usr/local/python3.11/libpython.so
DEBUG Not found.
DEBUG Candidate: libpython3.7m.so.1.0
DEBUG Not found.
dlopen(/usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.a) ==> ErrorException(“could not load library "/usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.a"\n/usr/local/python3.11/lib/python3.11/config-3.11-x86_64-linux-gnu/libpython3.11.a.so: 无法打开共享对象文件: 没有那个文件或目录”)
dlopen(/usr/local/python3.11/lib/libpython3.11.a) ==> ErrorException(“could not load library "/usr/local/python3.11/lib/libpython3.11.a"\n/usr/local/python3.11/lib/libpython3.11.a.so: 无法打开共享对象文件: 没有那个文件或目录”)
dlopen(libpython3.11) ==> ErrorException(“could not load library "libpython3.11"\nlibpython3.11.so: 无法打开共享对象文件: 没有那个文件或目录”)
dlopen(libpython3.11) ==> ErrorException(“could not load library "libpython3.11"\nlibpython3.11.so: 无法打开共享对象文件: 没有那个文件或目录”)
dlopen(libpython3) ==> ErrorException(“could not load library "libpython3"\nlibpython3.so: 无法打开共享对象文件: 没有那个文件或目录”)
dlopen(libpython) ==> ErrorException(“could not load library "libpython"\nlibpython.so: 无法打开共享对象文件: 没有那个文件或目录”)
ERROR: LoadError: Couldn’t find libpython; check your PYTHON environment variable.

3. Configure Python — Python 3.11.0 documentation

--enable-shared
Enable building a shared Python library: libpython (default is no).

编译选项加了没

1 个赞

哎呀,没有!我试试!!

./configure --enable-optimizations --enable-shared --with-ssl
编译后,
python3.11 -V
报错
python3.11: error while loading shared libraries: libpython3.11.so.1.0: cannot open shared object file: No such file or directory

1 个赞

:heart_eyes:完美解决!!