【问题标题】:Can't load Python PIL.Images module using PyCall from Julia无法使用来自 Julia 的 PyCall 加载 Python PIL.Images 模块
【发布时间】:2016-11-01 03:57:46
【问题描述】:

在 Julia 中,我使用的是 PyCall 模块

using PyCall: @pyimport

当我尝试使用 scikitlearn 库的名为 ensamble 的模块时,没有问题,它可以工作,我可以使用该模块:

@pyimport sklearn.ensemble as skle

但是,当我尝试对 PIL 库或 PIL 库的模块图像执行相同操作时,它不起作用。

@pyimport PIL.Image as PILI

我收到以下错误:错误:PyError (:PyImport_ImportModule) ImportError('没有名为 PIL.Image 的模块',)

[内联代码]来自/home/lara/.julia/v0.4/PyCall/src/exception.jl:81 在 /home/lara/.julia/v0.4/PyCall/src/PyCall.jl:387 的 pyimport 中

谁能告诉我完成这个工作的步骤,因为我看不出这与 scikit 学习库和集成模块有什么不同。

【问题讨论】:

  • 你能导入python本身吗?如果没有,请参见例如stackoverflow.com/questions/38134362/no-module-named-pil
  • 我今天在 Python 中成功使用了这个,是的。
  • @pyimport Image 有效吗?否则,PyCall 可能指向另一个没有 PIL 的 Python 安装。在 python repl 中检查 sys.path,并与 Julia 中的 @pyimport sys as pysys; pysys.path 进行比较。如果这是问题,请尝试github.com/JuliaPy/PyCall.jl#specifying-the-python-version
  • 我已经运行了这两个命令,但是当您说“比较这两个命令,如果这是问题,请尝试 github”,比较应该是什么,只是目录字符串的最后一部分?比较两者时,我怎么知道我是否有问题?例如,每个中的第一个条目是 - Python - '/home/lara/anaconda2/lib/python27.zip' 和 Julia - "/home/lara/.julia/v0.4/Conda/deps/usr/lib/ python27.zip"

标签: python julia


【解决方案1】:

根据 cmets 中的讨论,问题似乎是 PyCall 正在使用其自己的 Python 安装,它没有安装必需的库。有两种选择:

  • 关注these instructions,将 PyCall 引用的 Python 安装更改为 /home/lara/anaconda2 中的本地安装。
  • 使用 Conda.jl 将 PIL 添加到 Conda.jl Python 安装:

    • Conda.add("Pillow")(你可能会使用 PIL,但 Pillow 是一个兼容的分支,据我所知,它正在积极维护)

第二个选项可能略受欢迎,但如果您已经安装了许多软件包,尝试第一个选项可能会更简单(如果出现问题,您可以随时切换回 Conda.jl 版本)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多