Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation on macOS 10.15.7 (Catalina) fails due to missing ImfIO.h #44

Open
dmolesUC opened this issue Jul 27, 2021 · 4 comments
Open

Comments

@dmolesUC
Copy link

System information

  • OS: macOS 10.15.7 (Catalina)
  • Python: 3.9 (installed w/Homebrew)
  • pip: 21.2.1

Steps to reproduce

  1. pip3 install --no-cache-dir openexr

Expected

  • package installs

Actual

$ pip3 install --no-cache-dir openexr
WARNING: Value for scheme.platlib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>
distutils: /usr/local/lib/python3.9/site-packages
sysconfig: /usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
WARNING: Value for scheme.purelib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>
distutils: /usr/local/lib/python3.9/site-packages
sysconfig: /usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages
WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/10151>
distutils: /usr/local/include/python3.9/UNKNOWN
sysconfig: /usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9/UNKNOWN
WARNING: Value for scheme.scripts does not match. Please report this to <https://github.com/pypa/pip/issues/10151>
distutils: /usr/local/bin
sysconfig: /usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/bin
WARNING: Value for scheme.data does not match. Please report this to <https://github.com/pypa/pip/issues/10151>
distutils: /usr/local
sysconfig: /usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9
WARNING: Additional context:
user = False
home = None
root = None
prefix = None
Collecting openexr
  Downloading OpenEXR-1.3.2.tar.gz (10 kB)
Building wheels for collected packages: openexr
  Building wheel for openexr (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/local/opt/python@3.9/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/fq/kpc5n9pn3qj506hzs3kdzg8w0000gn/T/pip-install-5urb1s5j/openexr_448b40b7d8964efa923c6e8d07e3255f/setup.py'"'"'; __file__='"'"'/private/var/folders/fq/kpc5n9pn3qj506hzs3kdzg8w0000gn/T/pip-install-5urb1s5j/openexr_448b40b7d8964efa923c6e8d07e3255f/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/fq/kpc5n9pn3qj506hzs3kdzg8w0000gn/T/pip-wheel-gj53ya6e
       cwd: /private/var/folders/fq/kpc5n9pn3qj506hzs3kdzg8w0000gn/T/pip-install-5urb1s5j/openexr_448b40b7d8964efa923c6e8d07e3255f/
  Complete output (222 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-10.15-x86_64-3.9
  copying Imath.py -> build/lib.macosx-10.15-x86_64-3.9
  running build_ext
  building 'OpenEXR' extension
  creating build/temp.macosx-10.15-x86_64-3.9
  clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -I/usr/local/opt/openssl/include -I/usr/local/opt/openssl/include -I/usr/local/opt/openssl/include -I/usr/local/opt/openssl/include -I/usr/local/opt/openssl/include -I/usr/include/OpenEXR -I/usr/local/include/OpenEXR -I/opt/local/include/OpenEXR -I/usr/local/include -I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c OpenEXR.cpp -o build/temp.macosx-10.15-x86_64-3.9/OpenEXR.o -g -DVERSION="1.3.2"
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  In file included from /usr/local/include/OpenEXR/ImathExc.h:47:
  /usr/local/include/OpenEXR/IexBaseExc.h:73:33: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
      IEX_EXPORT BaseExc (BaseExc &&be) throw();
                                  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:77:45: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
      IEX_EXPORT BaseExc & operator = (BaseExc&& be) throw ();
                                              ^
  /usr/local/include/OpenEXR/IexBaseExc.h:168:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IEX_EXPORT, ArgExc, BaseExc)    // Invalid arguments to a function call
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  /usr/local/include/OpenEXR/IexBaseExc.h:168:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  /usr/local/include/OpenEXR/IexBaseExc.h:170:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IEX_EXPORT, LogicExc, BaseExc)  // General error in a program's logic,
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  /usr/local/include/OpenEXR/IexBaseExc.h:170:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  /usr/local/include/OpenEXR/IexBaseExc.h:175:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IEX_EXPORT, InputExc, BaseExc)  // Invalid input data, e.g. from a file
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  /usr/local/include/OpenEXR/IexBaseExc.h:175:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  /usr/local/include/OpenEXR/IexBaseExc.h:177:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IEX_EXPORT, IoExc, BaseExc)     // Input or output operation failed
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  /usr/local/include/OpenEXR/IexBaseExc.h:177:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  /usr/local/include/OpenEXR/IexBaseExc.h:179:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IEX_EXPORT, MathExc, BaseExc)   // Arithmetic exception; more specific
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  /usr/local/include/OpenEXR/IexBaseExc.h:179:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  /usr/local/include/OpenEXR/IexBaseExc.h:183:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IEX_EXPORT, ErrnoExc, BaseExc)  // Base class for exceptions corresponding
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  /usr/local/include/OpenEXR/IexBaseExc.h:183:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  /usr/local/include/OpenEXR/IexBaseExc.h:188:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IEX_EXPORT, NoImplExc, BaseExc) // Missing method exception e.g. from a
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  /usr/local/include/OpenEXR/IexBaseExc.h:188:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  /usr/local/include/OpenEXR/IexBaseExc.h:194:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IEX_EXPORT, NullExc, BaseExc)   // A pointer is inappropriately null.
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  /usr/local/include/OpenEXR/IexBaseExc.h:194:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  /usr/local/include/OpenEXR/IexBaseExc.h:196:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IEX_EXPORT, TypeExc, BaseExc)   // An object is an inappropriate type,
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  /usr/local/include/OpenEXR/IexBaseExc.h:196:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:53:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IMATH_EXPORT, NullVecExc, ::IEX_NAMESPACE::MathExc)
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:53:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:56:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IMATH_EXPORT, InfPointExc, ::IEX_NAMESPACE::MathExc)
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:56:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:59:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IMATH_EXPORT, NullQuatExc, ::IEX_NAMESPACE::MathExc)
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:59:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:62:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IMATH_EXPORT, SingMatrixExc, ::IEX_NAMESPACE::MathExc)
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:62:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:65:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IMATH_EXPORT, ZeroScaleExc, ::IEX_NAMESPACE::MathExc)
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:65:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:68:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  DEFINE_EXC_EXP (IMATH_EXPORT, IntVecNormalizeExc, ::IEX_NAMESPACE::MathExc)
  ^
  /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name (name &&other) throw();                            \
                         ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
  /usr/local/include/OpenEXR/ImathExc.h:68:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
          exp name& operator = (name &&other) throw();                \
                                     ^
  In file included from OpenEXR.cpp:36:
  In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
  /usr/local/include/OpenEXR/ImathVec.h:105:16: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
      ~Vec2 () = default;
                 ^
  /usr/local/include/OpenEXR/ImathVec.h:308:16: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
      ~Vec3 () = default;
                 ^
  /usr/local/include/OpenEXR/ImathVec.h:526:16: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
      ~Vec4 () = default;
                 ^
  OpenEXR.cpp:37:10: fatal error: 'ImfIO.h' file not found
  #include <ImfIO.h>
           ^~~~~~~~~
  35 warnings and 1 error generated.
  error: command '/usr/bin/clang' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for openexr
  Running setup.py clean for openexr
Failed to build openexr
Installing collected packages: openexr
  WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/10151>
  distutils: /usr/local/include/python3.9/openexr
  sysconfig: /usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9/openexr
    Running setup.py install for openexr ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/local/opt/python@3.9/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/fq/kpc5n9pn3qj506hzs3kdzg8w0000gn/T/pip-install-5urb1s5j/openexr_448b40b7d8964efa923c6e8d07e3255f/setup.py'"'"'; __file__='"'"'/private/var/folders/fq/kpc5n9pn3qj506hzs3kdzg8w0000gn/T/pip-install-5urb1s5j/openexr_448b40b7d8964efa923c6e8d07e3255f/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/fq/kpc5n9pn3qj506hzs3kdzg8w0000gn/T/pip-record-zh8yd032/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.9/openexr
         cwd: /private/var/folders/fq/kpc5n9pn3qj506hzs3kdzg8w0000gn/T/pip-install-5urb1s5j/openexr_448b40b7d8964efa923c6e8d07e3255f/
    Complete output (222 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.macosx-10.15-x86_64-3.9
    copying Imath.py -> build/lib.macosx-10.15-x86_64-3.9
    running build_ext
    building 'OpenEXR' extension
    creating build/temp.macosx-10.15-x86_64-3.9
    clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -I/usr/local/opt/openssl/include -I/usr/local/opt/openssl/include -I/usr/local/opt/openssl/include -I/usr/local/opt/openssl/include -I/usr/local/opt/openssl/include -I/usr/include/OpenEXR -I/usr/local/include/OpenEXR -I/opt/local/include/OpenEXR -I/usr/local/include -I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c OpenEXR.cpp -o build/temp.macosx-10.15-x86_64-3.9/OpenEXR.o -g -DVERSION="1.3.2"
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    In file included from /usr/local/include/OpenEXR/ImathExc.h:47:
    /usr/local/include/OpenEXR/IexBaseExc.h:73:33: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
        IEX_EXPORT BaseExc (BaseExc &&be) throw();
                                    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:77:45: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
        IEX_EXPORT BaseExc & operator = (BaseExc&& be) throw ();
                                                ^
    /usr/local/include/OpenEXR/IexBaseExc.h:168:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IEX_EXPORT, ArgExc, BaseExc)    // Invalid arguments to a function call
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    /usr/local/include/OpenEXR/IexBaseExc.h:168:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    /usr/local/include/OpenEXR/IexBaseExc.h:170:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IEX_EXPORT, LogicExc, BaseExc)  // General error in a program's logic,
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    /usr/local/include/OpenEXR/IexBaseExc.h:170:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    /usr/local/include/OpenEXR/IexBaseExc.h:175:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IEX_EXPORT, InputExc, BaseExc)  // Invalid input data, e.g. from a file
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    /usr/local/include/OpenEXR/IexBaseExc.h:175:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    /usr/local/include/OpenEXR/IexBaseExc.h:177:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IEX_EXPORT, IoExc, BaseExc)     // Input or output operation failed
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    /usr/local/include/OpenEXR/IexBaseExc.h:177:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    /usr/local/include/OpenEXR/IexBaseExc.h:179:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IEX_EXPORT, MathExc, BaseExc)   // Arithmetic exception; more specific
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    /usr/local/include/OpenEXR/IexBaseExc.h:179:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    /usr/local/include/OpenEXR/IexBaseExc.h:183:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IEX_EXPORT, ErrnoExc, BaseExc)  // Base class for exceptions corresponding
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    /usr/local/include/OpenEXR/IexBaseExc.h:183:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    /usr/local/include/OpenEXR/IexBaseExc.h:188:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IEX_EXPORT, NoImplExc, BaseExc) // Missing method exception e.g. from a
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    /usr/local/include/OpenEXR/IexBaseExc.h:188:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    /usr/local/include/OpenEXR/IexBaseExc.h:194:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IEX_EXPORT, NullExc, BaseExc)   // A pointer is inappropriately null.
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    /usr/local/include/OpenEXR/IexBaseExc.h:194:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    /usr/local/include/OpenEXR/IexBaseExc.h:196:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IEX_EXPORT, TypeExc, BaseExc)   // An object is an inappropriate type,
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    /usr/local/include/OpenEXR/IexBaseExc.h:196:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:53:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IMATH_EXPORT, NullVecExc, ::IEX_NAMESPACE::MathExc)
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:53:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:56:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IMATH_EXPORT, InfPointExc, ::IEX_NAMESPACE::MathExc)
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:56:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:59:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IMATH_EXPORT, NullQuatExc, ::IEX_NAMESPACE::MathExc)
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:59:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:62:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IMATH_EXPORT, SingMatrixExc, ::IEX_NAMESPACE::MathExc)
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:62:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:65:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IMATH_EXPORT, ZeroScaleExc, ::IEX_NAMESPACE::MathExc)
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:65:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:68:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    DEFINE_EXC_EXP (IMATH_EXPORT, IntVecNormalizeExc, ::IEX_NAMESPACE::MathExc)
    ^
    /usr/local/include/OpenEXR/IexBaseExc.h:144:24: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name (name &&other) throw();                            \
                           ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    In file included from /usr/local/include/OpenEXR/ImathVec.h:46:
    /usr/local/include/OpenEXR/ImathExc.h:68:1: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
    /usr/local/include/OpenEXR/IexBaseExc.h:146:36: note: expanded from macro 'DEFINE_EXC_EXP'
            exp name& operator = (name &&other) throw();                \
                                       ^
    In file included from OpenEXR.cpp:36:
    In file included from /usr/local/include/OpenEXR/ImathBox.h:65:
    /usr/local/include/OpenEXR/ImathVec.h:105:16: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
        ~Vec2 () = default;
                   ^
    /usr/local/include/OpenEXR/ImathVec.h:308:16: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
        ~Vec3 () = default;
                   ^
    /usr/local/include/OpenEXR/ImathVec.h:526:16: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
        ~Vec4 () = default;
                   ^
    OpenEXR.cpp:37:10: fatal error: 'ImfIO.h' file not found
    #include <ImfIO.h>
             ^~~~~~~~~
    35 warnings and 1 error generated.
    error: command '/usr/bin/clang' failed with exit code 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/local/opt/python@3.9/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/fq/kpc5n9pn3qj506hzs3kdzg8w0000gn/T/pip-install-5urb1s5j/openexr_448b40b7d8964efa923c6e8d07e3255f/setup.py'"'"'; __file__='"'"'/private/var/folders/fq/kpc5n9pn3qj506hzs3kdzg8w0000gn/T/pip-install-5urb1s5j/openexr_448b40b7d8964efa923c6e8d07e3255f/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/fq/kpc5n9pn3qj506hzs3kdzg8w0000gn/T/pip-record-zh8yd032/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.9/openexr Check the logs for full command output.
@xav-ie
Copy link

xav-ie commented Aug 29, 2022

I have been doing some investigation and found that doing the simple brew install openexr does not install the proper headers required to actually use OpenEXR :( ... You have to install ilmbase. However, you get a message saying it conflicts with headers found in the openexr package... ugh. So I naively just copied the headers such as ImFIO.h over to where openexr's include directory was as per AcademySoftwareFoundation/openexr#231 (comment)

This did not work and they are just not correctly synced or whatever. I got errors like error: virtual function 'tellg' has a different return type ('Imath_2_5::Int64' (aka 'unsigned long')) than the function it overrides (which has return type 'uint64_t' (aka 'unsigned long long')). This tells me that ilmbase is not the correct ilmbase for the openexr you can get through brew, so I am going to try to build openexr from source and post update here.

@xav-ie
Copy link

xav-ie commented Aug 30, 2022

Alright! Installing openexr from their release 'cd openexr; mkdir build; cd build; cmake ..; make; sudo make install' got me halfway there. Then pip install openexr will still try to use that ilmbase but its is /wrong/ and does not match the current release of openexr. Just brew uninstall openexr and also manually install the current release of lmath just like openexr. By uninstalling ilmbase, you are forcing the command:

❯ clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/homebrew/Caskroom/miniforge/base/envs/tf/include -arch arm64 -fPIC -O2 -isystem /opt/homebrew/Caskroom/miniforge/base/envs/tf/include -arch arm64 -I/opt/homebrew/opt/ilmbase/include/OpenEXR -I/usr/include/OpenEXR -I/usr/local/include/OpenEXR -I/opt/local/include/OpenEXR -I/usr/include/Imath -I/usr/local/include/Imath -I/opt/local/include/Imath -I/opt/homebrew/Caskroom/miniforge/base/envs/tf/include/python3.10 -c OpenEXR.cpp -o build/temp.macosx-11.0-arm64-cpython-310/OpenEXR.o -g -DVERSION=\"1.3.9\" -std=c++11 -Wc++11-extensions -Wc++11-long-long

To not find your home-brewed ilmbase (see the part where it says -I/opt/homebrew/opt/ilmbase/include/OpenEXR and will now just auto find your manually install lmath. Now running pip install openexr works... this is more of a cask issue and don't know where this belongs but hope this helps someone.

Edit: Idk if it helped but I also made sure to do brew install zlib per the openexr instructions

This helped: https://github.com/AcademySoftwareFoundation/openexr/blob/main/INSTALL.md
And this: https://github.com/AcademySoftwareFoundation/Imath/blob/main/INSTALL.md

@ztzhang
Copy link

ztzhang commented Nov 7, 2022

I found a solution just in case anyone is having trouble installing this python binding. The root cause of this is that openexr bumped to version 3+ and refactored out Imath as a separate lib, and this binding is for version 2+.
First, install openexr@2 with home brew by:

brew install openexr@2

Then you need to clone this repo, and add the following path to setup.py:

include_dirs : '/opt/homebrew/opt/openexr@2/include/OpenEXR/', '/opt/homebrew/opt/ilmbase/include/OpenEXR'
library_dirs : '/opt/homebrew/opt/openexr@2/lib', '/opt/homebrew/opt/ilmbase/lib'

Then you should be able to install this binding by:

pip install ./openexrpython

@baixianger
Copy link

It's because the GCC compiler couldn't find the suitable C++ heads and libraries. To solve it, here are some tips:

First, install OpenERR from brew, brew install openexr. For me, version 3+ works well. Here it's 3.1.7.

Next, open the setup.py and add those directories to the include_dirs and library_dirs.

              include_dirs=['/usr/include/OpenEXR',
                            '/usr/local/include/OpenEXR',
                            '/opt/local/include/OpenEXR',
                            '/usr/include/Imath',
                            '/usr/local/include/Imath',
                            '/opt/local/include/Imath',
                            '/opt/homebrew/Cellar/openexr/3.1.7/include/OpenEXR', # specific to my system
                            '/opt/homebrew/Cellar/imath/3.1.7/include/Imath'], # specific to my system
              library_dirs=['/usr/lib',
                            '/usr/local/lib',
                            '/opt/local/lib',
                            '/opt/homebrew/Cellar/openexr/3.1.7/lib', # specific to my system
                            '/opt/homebrew/Cellar/imath/3.1.7/lib'], # specific to my system
  • Be careful you need both files from openexr and imath.

Alternatively, you may also add those directories into system path.

brew install openexr
export CFLAGS="-I/opt/homebrew/Cellar/openexr/3.1.7/include/OpenEXR -I/opt/homebrew/Cellar/imath/3.1.7/include/Imath -std=c++11"
export LDFLAGS="-L/opt/homebrew/Cellar/openexr/3.1.7/lib -L/opt/homebrew/Cellar/imath/3.1.7/lib"
pip install OpenEXR

Enjoy🍺

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants