【问题标题】:Julia Plots: PyCall.PyError("PyImport_ImportModule\n\nThe Python package matplotlib.pyplot could not be found by pyimportJulia Plots: PyCall.PyError("PyImport_ImportModule\n\npyimport 找不到 Python 包 matplotlib.pyplot
【发布时间】:2019-03-09 18:15:07
【问题描述】:

我正在尝试使用 pyplot() 后端在 Julia 中使用 plots() 进行绘图。这是我得到的错误。我很困惑我需要做什么来解决这个问题。任何人都可以帮忙吗?

*LoadError: InitError: PyCall.PyError("PyImport_ImportModule\n\nPython包matplotlib.pyplot无法被pyimport找到。通常这意味着\n你没有在PyCall使用的Python版本中安装matplotlib.pyplot .\n\nPyCall 当前配置为使用由 Conda.jl 包安装的 Julia 特定 Python 分发包。要安装 matplotlib.pyplot 模块,您可以\n使用pyimport_conda(\"matplotlib.pyplot\", PKG),其中 PKG 是 Anaconda\n包模块 matplotlib.pyplot,或者您可以直接使用\nConda 包(通过using Conda 后跟Conda.add 等等)。\n\n或者,如果您想在您的系统上使用不同的 Python 发行版,例如系统范围的 Python(相对于 Julia 特定的 Python),\n您可以使用该 Python 重新配置 PyCall。如 PyCall\n文档中所述,将 ENV[\"PYTHON\"] 设置为你想使用的 python 可执行文件\n,运行 Pkg.build(\"PyCall\"),然后重新启动 Julia。\n\n", Py Call.PyObject(Ptr{PyCall.PyObject_struct} @0x0000000166bd5f40), PyCall.PyObject(Ptr{PyCall.PyObject_struct} @0x00000001a99e3748), PyCall.PyObject(Ptr{PyCall.PyObject_struct} @0x00000001a99f75c8)) 在模块 PyPlot 初始化期间 *

【问题讨论】:

    标签: matplotlib julia plots.jl


    【解决方案1】:

    这绝对是“许多蟒蛇”的问题。基本上在 Julia 中你总是有两种选择:

    1. 使用 Julia 内置的 Anaconda Python
    2. 使用外部 (Anaconda) Python 安装

    我更喜欢第二种选择,因为无论如何大多数数据科学/科学计算机都有 Anaconda,我更喜欢有一个 Anaconda 来管理而不是许多 Anaconda。

    广告 1。 当没有设置 PYTHON 环境变量时使用内置 Python(在 Julia 控制台中查找 ENV["PYTHON"] 的值) 基本上,通常首先要尝试的是为包管理器按] 并运行:

    (v1.0) pkg> build PyCall
    
    (v1.0) pkg> build PyPlot
    

    广告 2。 设置PYTHON环境变量(我用的是sample,典型路径)​​

    Windows(或进入计算机管理并设置系统变量):

    $ set PYTHON=C:\ProgramData\Anaconda3\python.exe
    

    Linux(示例 Ubuntu 配置):

    $ export PYTHON=/home/ubuntu/anaconda3/bin/python
    

    Julia 控制台(在 Linux Ubuntu 上)

    julia> ENV["PYTHON"]="/home/ubuntu/anaconda3/bin/python"
    

    完成后转到 Julia 包管理器并重建包:

    (v1.0) pkg> build PyCall
    
    (v1.0) pkg> build PyPlot
    

    应该可以。

    【讨论】:

    • 好的,所以我得到了我的路径:/Users/name_of)user/anaconda/bin/python"... 但是现在我该怎么办?我试着做 "ENV["PYTHON"] ="/home/ubuntu/anaconda3/bin/python"" 什么都没有发生......它只是设置一个本地引用名称。
    • 想通了,它现在说:“用户警告:Matplotlib 当前正在使用 agg,这是一个非 GUI 后端,因此无法显示数字。% get_backend())”
    • 有什么建议吗? @PrzemyslawSzufel
    • @logankilpatrick 我知道您解决了上述问题,现在出现了不同的“绘图后端”错误。尝试绘图到文件 - 在绘图线的末尾放置一个分号 ; 并使用 savefig 保存到文件 - 请参阅 https://docs.juliaplots.org/latest/output/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 2021-06-04
    相关资源
    最近更新 更多