首页 > 解决方案 > 未找到符号:引用自:预期在:平面命名空间 | macOS 大苏尔

问题描述

我一直在尝试使用以下方法导入模块:

import pyexiv2

这会产生错误

Aruns-MacBook-Air:scripts arun$ python3 99-new-camera.py crop_field
Traceback (most recent call last):
  File "99-new-camera.py", line 7, in <module>
    import pyexiv2                  # dnf install python3-exiv2 (py3exiv2)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyexiv2/__init__.py", line 60, in <module>
    import libexiv2python
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/libexiv2python.cpython-37m-darwin.so, 2): Symbol not found: _PyCMethod_New
  Referenced from: /usr/local/opt/boost-python3/lib/libboost_python39.dylib
  Expected in: flat namespace
 in /usr/local/opt/boost-python3/lib/libboost_python39.dylib

我已经安装了所有依赖项,我不明白为什么会出现这个错误。我在 macOS Big Sur 上运行 Python 3.7。有没有解决这个问题的方法?

我相信我已经从这篇文章中找到了解决问题的方法,该文章建议通过添加链接器标志来解决问题-lboost-python3。如何添加链接器标志并解决此问题?

标签: pythonmacosimportimporterrorboost-python

解决方案


推荐阅读