Julia Plots: PyCall.PyError("PyImport_ImportModule\n\npyimport 找不到 Python 包 matplotlib.pyplot

Posted

技术标签:

【中文标题】Julia Plots: PyCall.PyError("PyImport_ImportModule\\n\\npyimport 找不到 Python 包 matplotlib.pyplot【英文标题】: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(PtrPyCall.PyObject_struct @0x0000000166bd5f40), PyCall.PyObject(PtrPyCall.PyObject_struct @0x00000001a99e3748), PyCall.PyObject(PtrPyCall.PyObject_struct @0x00000001a99f75c8)) 在模块 PyPlot 初始化期间 *

【问题讨论】:

【参考方案1】:

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

    使用 Julia 内置的 Anaconda Python 使用外部 (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/

以上是关于Julia Plots: PyCall.PyError("PyImport_ImportModule\n\npyimport 找不到 Python 包 matplotlib.pyplot的主要内容,如果未能解决你的问题,请参考以下文章

Julia Plots: PyCall.PyError("PyImport_ImportModule\n\npyimport 找不到 Python 包 matplotlib.pyplot

在 VSCode 中使用 Julia 的 PlotlyJS 时,放大不适应日期轴

为 Jupyter 笔记本调整 Julia 内核中的绘图大小

Julia LoadError: UndefVarError: plot not defined 问题解决

Julia LoadError: UndefVarError: plot not defined 问题解决

Julia LoadError: UndefVarError: plot not defined 问题解决