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 问题解决