environment-variables - Julia:未能将 PyCall 配置为使用不同的版本
问题描述
我想在我的 Julia 代码中使用一系列 Python 库。我一直在尝试使用 PyCall 访问我已经安装在我的(Windows)PC 上的 Python 库;但是,我无法重新配置 PyCall,使其远离 Julia 私有的默认 Python 发行版。按照文档中的步骤(https://github.com/JuliaPy/PyCall.jl),我在 Julia 中尝试了以下操作:
using Pkg
ENV["PYTHON"] = raw"C:\Users\catod\AppData\Local\Programs\Python\Python37-32\python.exe"
Pkg.build(PyCall)
退出并重新进入 Julia 后,我尝试运行
using PyCall
plt = pyimport("matplotlib.pyplot")
但收到以下错误消息:
ERROR: LoadError: PyError (PyImport_ImportModule
The Python package matplotlib.pyplot could not be imported by pyimport. Usually this means
that you did not install matplotlib.pyplot in the Python version being used by PyCall.
PyCall is currently configured to use the Julia-specific Python distribution
installed by the Conda.jl package. To install the matplotlib.pyplot module, you can
use `pyimport_conda("matplotlib.pyplot", PKG)`, where PKG is the Anaconda
package the contains the module matplotlib.pyplot, or alternatively you can use the
Conda package directly (via `using Conda` followed by `Conda.add` etcetera).
Alternatively, if you want to use a different Python distribution on your
system, such as a system-wide Python (as opposed to the Julia-specific Python),
you can re-configure PyCall with that Python. As explained in the PyCall
documentation, set ENV["PYTHON"] to the path/name of the python executable
you want to use, run Pkg.build("PyCall"), and re-launch Julia.
) <class 'ModuleNotFoundError'>
ModuleNotFoundError("No module named 'matplotlib'")
谁能指出我哪里出错了?
解决方案
这里有两个问题:
您的 Python 安装中未安装 Matplotlib。您需要运行(但我绝对推荐 Anaconda - 请参阅最后的注释)
pip install matplotlib
即使您设法安装
matplolib
您的代码,在您尝试第一个情节的地方也会非常难看的崩溃,因为不加载show
就无法直接嵌入到 Julia中。因此,您的代码应该是:matlplotlib
PyPlot
using PyCall using PyPlot plt = pyimport("matplotlib.pyplot")
现在另一个问题是,通常PyPlot
是通过 conda 安装它需要的所有包。由于您尝试使用普通的 Python,因此您需要手动安装这些包。
笔记
基本上,应该需要使用 Anaconda 来获得良好的 Julia-Python 体验,因为在这种情况下,有许多工具可以自动化集成。
使用 Julia 内置的 Python 是最简单的选择。我绝对推荐:
ENV["PYTHON"] = ""
pkg"build PyCall"
using Conda
Conda.add("matplotlib")
另一个相对简单的选择是 Anaconda。安装您自己的 Anaconda 并设置ENV["PYTHON"]
它,build
尽情享受吧。使用非 Anaconda Python 永远不会很好,因为您仍然无法使用它Conda.jl
来管理安装。
推荐阅读
- reactjs - 在 reactjs 中将 { 和 } 显示为函数
- google-sheets - 允许访问单元格公式中的外部工作表的权限
- javascript - 如何检查结束时间和开始时间是否与javascript相等
- php - PHP - 将嵌套数组打印为无序列表
- flutter - Flutter / Dart 全局变量列表用最近添加的列表覆盖所有列表项
- opencv - 是否有任何算法可以让我识别照片是否是从显示器上显示的图像中拍摄的?
- arrays - 组合 0 到 (k-1) 的连通路径来构建 k 的路径
- ios - 终止应用程序后保存数组索引
- javascript - React hooks:从回调中访问最新状态
- flutter - 按下后退按钮时,颤动的 PageView 页面索引不会持续存在