numbersprotocol / pyc2pa

Python implementation of C2PA: Coalition for Content Provenance and Authenticity.
GNU General Public License v3.0
36 stars 3 forks source link

import libexiv2python doesn't work on macOS #22

Open ethanwu155 opened 3 years ago

ethanwu155 commented 3 years ago

Tried to run c2pa_hello_world.py and ran into the following issue:

$ python c2pa_hello_world.py
Traceback (most recent call last):
  File "c2pa_hello_world.py", line 39, in <module>
    from c2pa.starling import Starling
  File "/Users/macuser/Desktop/coding_projects/pyc2pa/lib/python3.7/site-packages/c2pa-1.4.1-py3.7.egg/c2pa/starling.py", line 21, in <module>
  File "/Users/macuser/Desktop/coding_projects/pyc2pa/lib/python3.7/site-packages/c2pa-1.4.1-py3.7.egg/c2pa/core.py", line 22, in <module>
  File "/Users/macuser/Desktop/coding_projects/pyc2pa/lib/python3.7/site-packages/py3exiv2-0.9.3-py3.7-macosx-10.9-x86_64.egg/pyexiv2/__init__.py", line 60, in <module>
    import libexiv2python
ImportError: dlopen(/Users/macuser/Desktop/coding_projects/pyc2pa/lib/python3.7/site-packages/py3exiv2-0.9.3-py3.7-macosx-10.9-x86_64.egg/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

May be an issue with libexiv2python on macOS.

Machine Specifications:

  1. macOS Mojave
  2. Version 10.14.5
bquinn commented 3 years ago

I get a similar issue trying to install on MacOS (Big Sur 11.2.3), it fails trying to install exiv2python:

% python3 -m pip install c2pa
Collecting c2pa
  Downloading c2pa-1.4.1-py3-none-any.whl (41 kB)
     |████████████████████████████████| 41 kB 308 kB/s 
Collecting pycryptodome>=3.9.9
  Using cached pycryptodome-3.10.1.tar.gz (3.8 MB)
Collecting py-multibase>=1.0.3
  Using cached py_multibase-1.0.3-py2.py3-none-any.whl (6.4 kB)
Collecting endesive>=2.0.2
  Downloading endesive-2.0.6-py3-none-any.whl (340 kB)
     |████████████████████████████████| 340 kB 1.1 MB/s 
Collecting pymultihash>=0.8.2
  Using cached pymultihash-0.8.2-py3-none-any.whl (13 kB)
Collecting py3exiv2>=0.9.3
  Using cached py3exiv2-0.9.3.tar.gz (36 kB)
ERROR: No .egg-info directory found in /private/var/folders/q5/1pszztv12pj9wpw_sc_mrrpc0000gn/T/pip-pip-egg-info-rroo4e7x

I'm on Apple silicon (M1 chip).

I'm working my way through various setuptools and homebrew issues to get it working locally (brew install boost-python3 helped somewhat) but I'm having lots of issues with various libraries while trying to install py3exiv2 from source. I'll add to this issue if I can work it out, I just wanted to note that I'm working on it in case other people have issues.

benhylau commented 3 years ago

Oops don't know how I missed this issue. I am having the same problem but filed in a new issue: https://github.com/numbersprotocol/pyc2pa/issues/27