Code Monkey home page Code Monkey logo

Comments (7)

goulart-paul avatar goulart-paul commented on May 25, 2024

I think the issue is that it is trying to compile OSQP and QDLDL with the -DDLONG = TRUE (the default), which is maybe not supported on the 32 bit platform you are using. You could try compiling OSQP with -DDLONG = FALSE (and maybe also -DFLOAT = TRUE). You might have to do this directly from the OSQP source using CMAKE.

from qdldl.

hylkedonker avatar hylkedonker commented on May 25, 2024

Thanks for your prompt response. I added the line

cmake_args += ["-DDLONG=FALSE", "-DFLOAT=TRUE"]

to the setup.py file (I also tried only the -DDLONG=FALSE flag), but it did not resolve the compilation error. Neither was changing FALSE=>OFF and TRUE=>ON. Do you have any other suggestions in mind?
Thanks!
Hylke

from qdldl.

goulart-paul avatar goulart-paul commented on May 25, 2024

Could you post verbose output from CMAKE so we can see what options you are getting?

from qdldl.

hylkedonker avatar hylkedonker commented on May 25, 2024

Yes, the complete output is:

$ python3 setup.py install
Disabling LONG
Remove long integers for numpy compatibility. See:
 - https://github.com/numpy/numpy/issues/5906
 - https://github.com/ContinuumIO/anaconda-issues/issues/3823
You can reenable long integers by passing: --osqp --long argument.

  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-wheel-orhqnmrb/qdldl/setup.py'"'"'; __file__='"'"'/tmp/pip-wheel-orhqnmrb/qdldl/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-4o98ziee
       cwd: /tmp/pip-wheel-orhqnmrb/qdldl/
  Complete output (72 lines):
  running bdist_wheel
  running build
  running build_ext
  -- The C compiler identification is GNU 10.2.0
  -- The CXX compiler identification is GNU 10.2.0
  -- Check for working C compiler: /usr/bin/cc
  -- Check for working C compiler: /usr/bin/cc -- works
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Check for working CXX compiler: /usr/bin/c++
  -- Check for working CXX compiler: /usr/bin/c++ -- works
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Floats are OFF
  -- Disabling long integers (64bit) on 32bit machine
  -- Long integers (64bit) are OFF
  -- Configuring done
  -- Generating done
  -- Build files have been written to: /tmp/pip-wheel-orhqnmrb/qdldl/c/build
  gmake[1]: Entering directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  gmake[2]: Entering directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  gmake[3]: Entering directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  Scanning dependencies of target qdldlobject
  gmake[3]: Leaving directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  gmake[3]: Entering directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  [  6%] Building C object qdldl/CMakeFiles/qdldlobject.dir/src/qdldl.c.o
  gmake[3]: Leaving directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  [  6%] Built target qdldlobject
  gmake[3]: Entering directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  Scanning dependencies of target qdldlamd
  gmake[3]: Leaving directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  gmake[3]: Entering directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  [ 13%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_1.c.o
  [ 20%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_2.c.o
  [ 26%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_aat.c.o
  [ 33%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_control.c.o
  [ 40%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_defaults.c.o
  [ 46%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_info.c.o
  [ 53%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_order.c.o
  [ 60%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_post_tree.c.o
  [ 66%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_postorder.c.o
  [ 73%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_preprocess.c.o
  [ 80%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_valid.c.o
  [ 86%] Building C object CMakeFiles/qdldlamd.dir/amd/src/SuiteSparse_config.c.o
  [ 93%] Building C object CMakeFiles/qdldlamd.dir/amd/src/perm.c.o
  [100%] Linking C static library out/libqdldlamd.a
  gmake[3]: Leaving directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  [100%] Built target qdldlamd
  gmake[2]: Leaving directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  gmake[1]: Leaving directory '/tmp/pip-wheel-orhqnmrb/qdldl/c/build'
  building 'qdldl' extension
  creating build
  creating build/temp.linux-armv7l-3.8
  creating build/temp.linux-armv7l-3.8/cpp
  arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Ic -Ic/qdldl/include -I/usr/local/lib/python3.8/dist-packages/pybind11/include -I/usr/local/lib/python3.8/dist-packages/pybind11/include -I/usr/include/python3.8 -c cpp/wrapper.cpp -o build/temp.linux-armv7l-3.8/cpp/wrapper.o -O3 -std=c++11
  arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Ic -Ic/qdldl/include -I/usr/local/lib/python3.8/dist-packages/pybind11/include -I/usr/local/lib/python3.8/dist-packages/pybind11/include -I/usr/include/python3.8 -c cpp/qdldl.cpp -o build/temp.linux-armv7l-3.8/cpp/qdldl.o -O3 -std=c++11
  cpp/qdldl.cpp: In constructor ‘qdldl::Solver::Solver(QDLDL_int, QDLDL_int*, QDLDL_int*, QDLDL_float*)’:
  cpp/qdldl.cpp:34:41: error: cannot convert ‘QDLDL_int*’ {aka ‘int*’} to ‘const long long int*’
     34 |  QDLDL_int amd_status = amd_l_order(nx, Ap, Ai, P, NULL, NULL);
        |                                         ^~
        |                                         |
        |                                         QDLDL_int* {aka int*}
  In file included from cpp/qdldl.hpp:3,
                   from cpp/qdldl.cpp:1:
  c/amd/include/amd.h:63:28: note:   initializing argument 2 of ‘long long int amd_l_order(long long int, const long long int*, const long long int*, long long int*, c_float*, c_float*)’
     63 |     const SuiteSparse_long Ap [ ],
        |     ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
  error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for qdldl
ERROR: Failed to build one or more wheels
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/setuptools/installer.py", line 128, in fetch_build_egg
    subprocess.check_call(cmd)
  File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpbl53r0dr', '--quiet', 'qdldl']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "setup.py", line 262, in <module>
    setup(name='osqp',
  File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 162, in setup
    _install_setup_requires(attrs)
  File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 157, in _install_setup_requires
    dist.fetch_build_eggs(dist.setup_requires)
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 699, in fetch_build_eggs
    resolved_dists = pkg_resources.working_set.resolve(
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 779, in resolve
    dist = best[req.key] = env.best_match(
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1064, in best_match
    return self.obtain(req, installer)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1076, in obtain
    return installer(requirement)
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 758, in fetch_build_egg
    return fetch_build_egg(self, req)
  File "/usr/lib/python3/dist-packages/setuptools/installer.py", line 130, in fetch_build_egg
    raise DistutilsError(str(e)) from e
distutils.errors.DistutilsError: Command '['/usr/bin/python3', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpbl53r0dr', '--quiet', 'qdldl']' returned non-zero exit status 1.

I hope this helps.

from qdldl.

goulart-paul avatar goulart-paul commented on May 25, 2024

It seems like you probably have the same problem as this one : osqp/qdldl-python#15.

Suggestion there is to try OSQP version < 0.6.2.

from qdldl.

hylkedonker avatar hylkedonker commented on May 25, 2024

Thanks, that seems to do the trick!

from qdldl.

goulart-paul avatar goulart-paul commented on May 25, 2024

Thanks for confirming. In that case I will close this and we will just keep it live in the qdldl-python repo.

from qdldl.

Related Issues (16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.