Skip to content

Failure to install on Apple M1 on Mac OS Monterey #33

@sunilshah

Description

@sunilshah

Ecos version 2.0.8 fails to install on Apple M1 on Mac OS 12.0.1, python 3.9.9 (homebrew installed). It fails to upgrade from ecos 2.0.7.post1.

 pip3 install -U ecos       
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
Requirement already satisfied: ecos in /opt/homebrew/lib/python3.9/site-packages (2.0.7.post1)
Collecting ecos
  Downloading ecos-2.0.8.tar.gz (135 kB)
     |████████████████████████████████| 135 kB 2.0 MB/s            
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy>=1.6 in /opt/homebrew/lib/python3.9/site-packages (from ecos) (1.21.4)
Requirement already satisfied: scipy>=0.9 in /opt/homebrew/lib/python3.9/site-packages (from ecos) (1.7.3)
Building wheels for collected packages: ecos
  Building wheel for ecos (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /opt/homebrew/opt/python@3.9/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-install-o7xtfekc/ecos_79d1b425adfe4d40a5153c49dea204d9/setup.py'"'"'; __file__='"'"'/private/var/folders/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-install-o7xtfekc/ecos_79d1b425adfe4d40a5153c49dea204d9/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/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-wheel-cf9ksghb
       cwd: /private/var/folders/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-install-o7xtfekc/ecos_79d1b425adfe4d40a5153c49dea204d9/
  Complete output (32 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-12-arm64-3.9
  creating build/lib.macosx-12-arm64-3.9/ecos
  copying src/ecos/version.py -> build/lib.macosx-12-arm64-3.9/ecos
  copying src/ecos/__init__.py -> build/lib.macosx-12-arm64-3.9/ecos
  copying src/ecos/ecos.py -> build/lib.macosx-12-arm64-3.9/ecos
  running build_ext
  building '_ecos' extension
  creating build/temp.macosx-12-arm64-3.9
  creating build/temp.macosx-12-arm64-3.9/ecos
  creating build/temp.macosx-12-arm64-3.9/ecos/ecos_bb
  creating build/temp.macosx-12-arm64-3.9/ecos/external
  creating build/temp.macosx-12-arm64-3.9/ecos/external/amd
  creating build/temp.macosx-12-arm64-3.9/ecos/external/amd/src
  creating build/temp.macosx-12-arm64-3.9/ecos/external/ldl
  creating build/temp.macosx-12-arm64-3.9/ecos/external/ldl/src
  creating build/temp.macosx-12-arm64-3.9/ecos/src
  creating build/temp.macosx-12-arm64-3.9/src
  clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -DPYTHON -DDLONG -DLDL_LONG -DCTRLC=1 -Iecos/include -Iecos/external/amd/include -Iecos/external/ldl/include -Iecos/external/SuiteSparse_config -I/opt/homebrew/include -I/opt/homebrew/opt/openssl@1.1/include -I/opt/homebrew/opt/sqlite/include -I/opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/homebrew/lib/python3.9/site-packages/numpy/core/include -c ecos/ecos_bb/ecos_bb.c -o build/temp.macosx-12-arm64-3.9/ecos/ecos_bb/ecos_bb.o
  ecos/ecos_bb/ecos_bb.c:100:77: warning: format specifies type 'unsigned int' but the argument has type 'idxint' (aka 'long') [-Wformat]
          PRINTTEXT("Node info %u: %u : %.2f : %.2f : %u : %.2f Partial id:", i, prob->nodes[i].status, prob->nodes[i].L, prob->nodes[i].U, (int)prob->nodes[i].split_idx, prob->nodes[i].split_val);
                               ~~                                             ^
                               %ld
  ecos/ecos_bb/ecos_bb.c:388:5: error: implicitly declaring library function 'memcpy' with type 'void *(void *, const void *, unsigned long)' [-Werror,-Wimplicit-function-declaration]
      memcpy(problem->tmp_branching_bool_node_id, get_bool_node_id(node_idx, problem), bool_node_size);
      ^
  ecos/ecos_bb/ecos_bb.c:388:5: note: include the header <string.h> or explicitly provide a declaration for 'memcpy'
  1 warning and 1 error generated.
  error: command '/usr/bin/clang' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for ecos
  Running setup.py clean for ecos
Failed to build ecos
Installing collected packages: ecos
  Attempting uninstall: ecos
    Found existing installation: ecos 2.0.7.post1
    Uninstalling ecos-2.0.7.post1:
      Successfully uninstalled ecos-2.0.7.post1
    Running setup.py install for ecos ... error
    ERROR: Command errored out with exit status 1:
     command: /opt/homebrew/opt/python@3.9/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-install-o7xtfekc/ecos_79d1b425adfe4d40a5153c49dea204d9/setup.py'"'"'; __file__='"'"'/private/var/folders/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-install-o7xtfekc/ecos_79d1b425adfe4d40a5153c49dea204d9/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/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-record-vuid19bg/install-record.txt --single-version-externally-managed --compile --install-headers /opt/homebrew/include/python3.9/ecos
         cwd: /private/var/folders/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-install-o7xtfekc/ecos_79d1b425adfe4d40a5153c49dea204d9/
    Complete output (34 lines):
    running install
/opt/homebrew/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
      warnings.warn(
    running build
    running build_py
    creating build
    creating build/lib.macosx-12-arm64-3.9
    creating build/lib.macosx-12-arm64-3.9/ecos
    copying src/ecos/version.py -> build/lib.macosx-12-arm64-3.9/ecos
    copying src/ecos/__init__.py -> build/lib.macosx-12-arm64-3.9/ecos
    copying src/ecos/ecos.py -> build/lib.macosx-12-arm64-3.9/ecos
    running build_ext
    building '_ecos' extension
    creating build/temp.macosx-12-arm64-3.9
    creating build/temp.macosx-12-arm64-3.9/ecos
    creating build/temp.macosx-12-arm64-3.9/ecos/ecos_bb
    creating build/temp.macosx-12-arm64-3.9/ecos/external
    creating build/temp.macosx-12-arm64-3.9/ecos/external/amd
    creating build/temp.macosx-12-arm64-3.9/ecos/external/amd/src
    creating build/temp.macosx-12-arm64-3.9/ecos/external/ldl
    creating build/temp.macosx-12-arm64-3.9/ecos/external/ldl/src
    creating build/temp.macosx-12-arm64-3.9/ecos/src
    creating build/temp.macosx-12-arm64-3.9/src
    clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -DPYTHON -DDLONG -DLDL_LONG -DCTRLC=1 -Iecos/include -Iecos/external/amd/include -Iecos/external/ldl/include -Iecos/external/SuiteSparse_config -I/opt/homebrew/include -I/opt/homebrew/opt/openssl@1.1/include -I/opt/homebrew/opt/sqlite/include -I/opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9 -I/opt/homebrew/lib/python3.9/site-packages/numpy/core/include -c ecos/ecos_bb/ecos_bb.c -o build/temp.macosx-12-arm64-3.9/ecos/ecos_bb/ecos_bb.o
    ecos/ecos_bb/ecos_bb.c:100:77: warning: format specifies type 'unsigned int' but the argument has type 'idxint' (aka 'long') [-Wformat]
            PRINTTEXT("Node info %u: %u : %.2f : %.2f : %u : %.2f Partial id:", i, prob->nodes[i].status, prob->nodes[i].L, prob->nodes[i].U, (int)prob->nodes[i].split_idx, prob->nodes[i].split_val);
                                 ~~                                             ^
                                 %ld
    ecos/ecos_bb/ecos_bb.c:388:5: error: implicitly declaring library function 'memcpy' with type 'void *(void *, const void *, unsigned long)' [-Werror,-Wimplicit-function-declaration]
        memcpy(problem->tmp_branching_bool_node_id, get_bool_node_id(node_idx, problem), bool_node_size);
        ^
    ecos/ecos_bb/ecos_bb.c:388:5: note: include the header <string.h> or explicitly provide a declaration for 'memcpy'
    1 warning and 1 error generated.
    error: command '/usr/bin/clang' failed with exit code 1
    ----------------------------------------
  Rolling back uninstall of ecos
  Moving to /opt/homebrew/lib/python3.9/site-packages/_ecos.cpython-39-darwin.so
   from /private/var/folders/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-uninstall-xqao81g_/_ecos.cpython-39-darwin.so
  Moving to /opt/homebrew/lib/python3.9/site-packages/ecos-2.0.7.post1.dist-info/
   from /opt/homebrew/lib/python3.9/site-packages/~cos-2.0.7.post1.dist-info
  Moving to /opt/homebrew/lib/python3.9/site-packages/ecos/
   from /opt/homebrew/lib/python3.9/site-packages/~cos
ERROR: Command errored out with exit status 1: /opt/homebrew/opt/python@3.9/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-install-o7xtfekc/ecos_79d1b425adfe4d40a5153c49dea204d9/setup.py'"'"'; __file__='"'"'/private/var/folders/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-install-o7xtfekc/ecos_79d1b425adfe4d40a5153c49dea204d9/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/sj/0mpllhrn5dgbk_sjm6l34jl40000gn/T/pip-record-vuid19bg/install-record.txt --single-version-externally-managed --compile --install-headers /opt/homebrew/include/python3.9/ecos Check the logs for full command output.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions