Mar*_*arc 2 python installation pip cvxpy
无论我是使用 pip 还是从源安装,无论我使用 python2 还是 python3,我都无法安装 cvxpy。我已经尝试了四个多小时了,但仍然失败。cvxpy 或 qdldl 的 github 页面不会给我任何解决方案。我安装了导致其他错误但没有成功的软件包。任何提示表示赞赏。
\nuser@ion:~ $ sudo pip install cvxpy\n\nLooking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple\nCollecting cvxpy\n Using cached https://files.pythonhosted.org/packages/11/d0/d900870dc2d02ea74961b90c353666c6528a33ea61a10aa59a0d5574ae59/cvxpy-1.0.31.tar.gz\n Installing build dependencies ... done\nCollecting osqp>=0.4.1 (from cvxpy)\n Using cached https://files.pythonhosted.org/packages/c0/90/4cf48c200a89e46bcad87e12469ee36fc03d0c3f16b703b747e8c4bf618e/osqp-0.6.2.post0.tar.gz\n Installing build dependencies ... done\n Complete output from command python setup.py egg_info:\n Failed building wheel for qdldl\n ERROR: Failed to build one or more wheels\n Disabling LONG\n Remove long integers for numpy compatibility. See:\n - https://github.com/numpy/numpy/issues/5906\n - https://github.com/ContinuumIO/anaconda-issues/issues/3823\n You can reenable long integers by passing: --osqp --long argument.\n \n Traceback (most recent call last):\n File "<string>", line 1, in <module>\n File "/tmp/pip-install-zEueiK/osqp/setup.py", line 276, in <module>\n ext_modules=[_osqp])\n File "/tmp/pip-build-env-vbB_nz/lib/python2.7/site-packages/setuptools/__init__.py", line 161, in setup\n _install_setup_requires(attrs)\n File "/tmp/pip-build-env-vbB_nz/lib/python2.7/site-packages/setuptools/__init__.py", line 156, in _install_setup_requires\n dist.fetch_build_eggs(dist.setup_requires)\n File "/tmp/pip-build-env-vbB_nz/lib/python2.7/site-packages/setuptools/dist.py", line 721, in fetch_build_eggs\n replace_conflicting=True,\n File "/tmp/pip-build-env-vbB_nz/lib/python2.7/site-packages/pkg_resources/__init__.py", line 782, in resolve\n replace_conflicting=replace_conflicting\n File "/tmp/pip-build-env-vbB_nz/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1065, in best_match\n return self.obtain(req, installer)\n File "/tmp/pip-build-env-vbB_nz/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1077, in obtain\n return installer(requirement)\n File "/tmp/pip-build-env-vbB_nz/lib/python2.7/site-packages/setuptools/dist.py", line 777, in fetch_build_egg\n return fetch_build_egg(self, req)\n File "/tmp/pip-build-env-vbB_nz/lib/python2.7/site-packages/setuptools/installer.py", line 130, in fetch_build_egg\n raise DistutilsError(str(e))\n distutils.errors.DistutilsError: Command '['/usr/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpsvIroT', '--quiet', 'qdldl']' returned non-zero exit status 1\n \n ----------------------------------------\nCommand "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-zEueiK/osqp/\nRun Code Online (Sandbox Code Playgroud)\n或者在这里从 python 3 中的源安装
\nuser@ion:~/osqp-python $ sudo python3 setup.py install \nno previously-included directories found matching 'tests/__pycache__/'\nno previously-included directories found matching 'c/build/'\nno previously-included directories found matching 'c/qdldl/build'\n-- The C compiler identification is GNU 8.3.0\n-- The CXX compiler identification is GNU 8.3.0\n-- Check for working C compiler: /usr/bin/cc\n-- Check for working C compiler: /usr/bin/cc -- works\n-- Detecting C compiler ABI info\n-- Detecting C compiler ABI info - done\n-- Detecting C compile features\n-- Detecting C compile features - done\n-- Check for working CXX compiler: /usr/bin/c++\n-- Check for working CXX compiler: /usr/bin/c++ -- works\n-- Detecting CXX compiler ABI info\n-- Detecting CXX compiler ABI info - done\n-- Detecting CXX compile features\n-- Detecting CXX compile features - done\n-- Floats are OFF\n-- Disabling long integers (64bit) on 32bit machine\n-- Long integers (64bit) are OFF\n-- Configuring done\n-- Generating done\n-- Build files have been written to: /tmp/easy_install-zqykb8_c/qdldl-0.1.5.post0/c/build\nScanning dependencies of target qdldlobject\n[ 6%] Building C object qdldl/CMakeFiles/qdldlobject.dir/src/qdldl.c.o\n[ 6%] Built target qdldlobject\nScanning dependencies of target qdldlamd\n[ 13%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_1.c.o\n[ 20%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_2.c.o\n[ 26%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_aat.c.o\n[ 33%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_control.c.o\n[ 40%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_defaults.c.o\n[ 46%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_info.c.o\n[ 53%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_order.c.o\n[ 60%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_post_tree.c.o\n[ 66%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_postorder.c.o\n[ 73%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_preprocess.c.o\n[ 80%] Building C object CMakeFiles/qdldlamd.dir/amd/src/amd_valid.c.o\n[ 86%] Building C object CMakeFiles/qdldlamd.dir/amd/src/SuiteSparse_config.c.o\n[ 93%] Building C object CMakeFiles/qdldlamd.dir/amd/src/perm.c.o\n[100%] Linking C static library out/libqdldlamd.a\n[100%] Built target qdldlamd\ncpp/qdldl.cpp: In constructor \xe2\x80\x98qdldl::Solver::Solver(QDLDL_int, QDLDL_int*, QDLDL_int*, QDLDL_float*)\xe2\x80\x99:\ncpp/qdldl.cpp:34:41: error: cannot convert \xe2\x80\x98QDLDL_int*\xe2\x80\x99 {aka \xe2\x80\x98int*\xe2\x80\x99} to \xe2\x80\x98const long long int*\xe2\x80\x99\n QDLDL_int amd_status = amd_l_order(nx, Ap, Ai, P, NULL, NULL);\n ^~\nIn file included from cpp/qdldl.hpp:3,\n from cpp/qdldl.cpp:1:\nc/amd/include/amd.h:63:28: note: initializing argument 2 of \xe2\x80\x98long long int amd_l_order(long long int, const long long int*, const long long int*, long long int*, c_float*, c_float*)\xe2\x80\x99\n const SuiteSparse_long Ap [ ],\n ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~\nTraceback (most recent call last):\n File "/usr/lib/python3.7/distutils/unixccompiler.py", line 118, in _compile\n extra_postargs)\n File "/usr/lib/python3.7/distutils/ccompiler.py", line 909, in spawn\n spawn(cmd, dry_run=self.dry_run)\n File "/usr/lib/python3.7/distutils/spawn.py", line 36, in spawn\n _spawn_posix(cmd, search_path, dry_run=dry_run)\n File "/usr/lib/python3.7/distutils/spawn.py", line 159, in _spawn_posix\n % (cmd, exit_status))\ndistutils.errors.DistutilsExecError: command 'arm-linux-gnueabihf-gcc' failed with exit status 1\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File "/usr/lib/python3.7/distutils/core.py", line 148, in setup\n dist.run_commands()\n File "/usr/lib/python3.7/distutils/dist.py", line 966, in run_commands\n self.run_command(cmd)\n File "/usr/lib/python3.7/distutils/dist.py", line 985, in run_command\n cmd_obj.run()\n File "/usr/lib/python3/dist-packages/setuptools/command/bdist_egg.py", line 172, in run\n cmd = self.call_command('install_lib', warn_dir=0)\n File "/usr/lib/python3/dist-packages/setuptools/command/bdist_egg.py", line 158, in call_command\n self.run_command(cmdname)\n File "/usr/lib/python3.7/distutils/cmd.py", line 313, in run_command\n self.distribution.run_command(command)\n File "/usr/lib/python3.7/distutils/dist.py", line 985, in run_command\n cmd_obj.run()\n File "/usr/lib/python3/dist-packages/setuptools/command/install_lib.py", line 24, in run\n self.build()\n File "/usr/lib/python3.7/distutils/command/install_lib.py", line 109, in build\n self.run_command('build_ext')\n File "/usr/lib/python3.7/distutils/cmd.py", line 313, in run_command\n self.distribution.run_command(command)\n File "/usr/lib/python3.7/distutils/dist.py", line 985, in run_command\n cmd_obj.run()\n File "/usr/lib/python3/dist-packages/setuptools/command/build_ext.py", line 78, in run\n _build_ext.run(self)\n File "/usr/lib/python3.7/distutils/command/build_ext.py", line 340, in run\n self.build_extensions()\n File "/tmp/easy_install-zqykb8_c/qdldl-0.1.5.post0/setup.py", line 91, in build_extensions\n # Interface files\n File "/usr/lib/python3.7/distutils/command/build_ext.py", line 449, in build_extensions\n self._build_extensions_serial()\n File "/usr/lib/python3.7/distutils/command/build_ext.py", line 474, in _build_extensions_serial\n self.build_extension(ext)\n File "/usr/lib/python3/dist-packages/setuptools/command/build_ext.py", line 199, in build_extension\n _build_ext.build_extension(self, ext)\n File "/usr/lib/python3.7/distutils/command/build_ext.py", line 534, in build_extension\n depends=ext.depends)\n File "/usr/lib/python3.7/distutils/ccompiler.py", line 574, in compile\n self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)\n File "/usr/lib/python3.7/distutils/unixccompiler.py", line 120, in _compile\n raise CompileError(msg)\ndistutils.errors.CompileError: command 'arm-linux-gnueabihf-gcc' failed with exit status 1\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 154, in save_modules\n yield saved\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 195, in setup_context\n yield\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 250, in run_setup\n _execfile(setup_script, ns)\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 45, in _execfile\n exec(code, globals, locals)\n File "/tmp/easy_install-zqykb8_c/qdldl-0.1.5.post0/setup.py", line 124, in <module>\n # External libraries\n File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 145, in setup\n return distutils.core.setup(**attrs)\n File "/usr/lib/python3.7/distutils/core.py", line 163, in setup\n raise SystemExit("error: " + str(msg))\nSystemExit: error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 1169, in run_setup\n run_setup(setup_script, args)\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 253, in run_setup\n raise\n File "/usr/lib/python3.7/contextlib.py", line 130, in __exit__\n self.gen.throw(type, value, traceback)\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 195, in setup_context\n yield\n File "/usr/lib/python3.7/contextlib.py", line 130, in __exit__\n self.gen.throw(type, value, traceback)\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 166, in save_modules\n saved_exc.resume()\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 141, in resume\n six.reraise(type, exc, self._tb)\n File "/usr/lib/python3/dist-packages/setuptools/_vendor/six.py", line 685, in reraise\n raise value.with_traceback(tb)\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 154, in save_modules\n yield saved\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 195, in setup_context\n yield\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 250, in run_setup\n _execfile(setup_script, ns)\n File "/usr/lib/python3/dist-packages/setuptools/sandbox.py", line 45, in _execfile\n exec(code, globals, locals)\n File "/tmp/easy_install-zqykb8_c/qdldl-0.1.5.post0/setup.py", line 124, in <module>\n # External libraries\n File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 145, in setup\n return distutils.core.setup(**attrs)\n File "/usr/lib/python3.7/distutils/core.py", line 163, in setup\n raise SystemExit("error: " + str(msg))\nSystemExit: error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File "setup.py", line 276, in <module>\n ext_modules=[_osqp])\n File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 144, in setup\n _install_setup_requires(attrs)\n File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 139, in _install_setup_requires\n dist.fetch_build_eggs(dist.setup_requires)\n File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 724, in fetch_build_eggs\n replace_conflicting=True,\n File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 782, in resolve\n replace_conflicting=replace_conflicting\n File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1065, in best_match\n return self.obtain(req, installer)\n File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1077, in obtain\n return installer(requirement)\n File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 791, in fetch_build_egg\n return cmd.easy_install(req)\n File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 704, in easy_install\n return self.install_item(spec, dist.location, tmpdir, deps)\n File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 730, in install_item\n dists = self.install_eggs(spec, download, tmpdir)\n File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 915, in install_eggs\n return self.build_and_install(setup_script, setup_base)\n File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 1183, in build_and_install\n self.run_setup(setup_script, setup_base, args)\n File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 1171, in run_setup\n raise DistutilsError("Setup script exited with %s" % (v.args[0],))\ndistutils.errors.DistutilsError: Setup script exited with error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1\nRun Code Online (Sandbox Code Playgroud)\n
您可以安装 osqp < 0.6.2 的版本,该版本不依赖于 qdldl-python 来安装 cvxpy。
pip3 install osqp==0.6.1
Run Code Online (Sandbox Code Playgroud)