【问题标题】:AttributeError: module 'pyexiv2' has no attribute 'ImageMetadata' | Python 3.7AttributeError: 模块 'pyexiv2' 没有属性 'ImageMetadata' |蟒蛇 3.7
【发布时间】:2021-05-01 17:01:12
【问题描述】:

我一直在尝试运行以下代码:

exif = pyexiv2.ImageMetadata(image_file)
exif.read()

在 Python 3.7.0 上,它会产生错误 AttributeError: module 'pyexiv2' has no attribute 'ImageMetadata'

我以前没有使用过 pyexiv2,但 here 的示例与我的相似,我认为它可以正常工作。我也不确定 Python 3 是否完全支持 pyexiv2。 请指教。

你可以找到我正在使用的脚本here

【问题讨论】:

  • 您的示例链接显示pyexiv2.metadata.ImageMetadata,而不是pyexiv2.ImageMetadata
  • @furas 你可以在标题buffer下找到参考代码meta = pyexiv2.ImageMetadata("lena.jpg")

标签: python image metadata exif pyexiv2


【解决方案1】:

本模块使用

import pyexiv2

但你必须安装py3exiv2 而不是pyexiv2 - 你可以在Tutorial 的第一行看到它


但它使用了一些C/C++ 代码,并且需要C/C++ 中的其他模块。

在 Linux 上我必须安装

apt install exiv2

apt install python3-dev

apt install libexiv2-dev

apt install libboost-python-dev

以后

pip install py3exiv2

(不是pyexiv2

参见Developers页面上的Dependences

在 Linux 上,我已经安装了编译器 C/C++ - gcc - 但您可能必须在其他系统上安装它。

【讨论】:

  • 安装以下依赖项exiv2boost-python3py3exiv2后仍然无法工作
  • 您卸载了pyexiv2 吗?也许你安装了两个 Python 并且你在其他 Python 中安装了 py3exiv2 - 你可以使用 python -m pip install ... 来安装你用来运行的 Python python script.py
  • 我会先卸载pyexiv2并检查是否仍然可以import pyexiv2以确认它真的被卸载了。后来我会使用python -m pip install py3exiv2 来安装它——它应该编译它——所以你应该看看它是否有问题找到所需的元素。它需要带有*-dev 的模块,其源代码在C/C++
  • 我相信您的方法在一定程度上有效,但现在import pyexiv2 产生错误。我已经报告了这个问题here
猜你喜欢
  • 1970-01-01
  • 2018-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-14
  • 2019-02-18
  • 1970-01-01
  • 2020-01-01
相关资源
最近更新 更多