Package Details: cplex 20.10-2

Git Clone URL: https://aur.archlinux.org/cplex.git (read-only, click to copy)
Package Base: cplex
Description: A commercial solver for mathematical optimization problems.
Upstream URL: https://www.ibm.com/software/products/de/ibmilogcpleoptistud
Licenses: custom
Submitter: Viech
Maintainer: None
Last Packager: Viech
Votes: 3
Popularity: 0.000000
First Submitted: 2017-10-24 11:46 (UTC)
Last Updated: 2022-01-06 15:33 (UTC)

Dependencies (3)

Sources (2)

Latest Comments

1 2 3 Next › Last »

oso commented on 2023-11-03 16:10 (UTC)

For those who are interested, I was able to install CPLEX 22.1 with python bindings. CPLEX officially supports Python 3.10. I made some changes in cplex/python to be able to install the bindings with Python 3.11. The bindings were tested with a simple MIP, not sure that everything works. Here is the patch:

diff --git a/PKGBUILD b/PKGBUILD
index cef5759..1da9862 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -10,15 +10,14 @@

 pkgname='cplex'
 pkgdesc="A commercial solver for mathematical optimization problems."
-pkgver=20.10
-pkgrel=2
+pkgver=22.1
+pkgrel=1
 arch=('x86_64')
 url='https://www.ibm.com/software/products/de/ibmilogcpleoptistud'
 license=('custom')
 depends=('gcc-libs')
 optdepends=(
-   'python37: for Python 3.7 bindings'
-   'python38: for Python 3.8 bindings'
+   'python3: for Python 3.11 bindings'
 )
 options=('!strip')

@@ -85,14 +84,13 @@ package() {
    install -m644 "./cpoptimizer/include/ilcp/"*.h "${pkgdir}/usr/include/ilcp"

    # Install Python bindings.
-   if pacman -Qq python37 >/dev/null 2>&1; then
-       cd "./cplex/python/3.7/${_archdir}/"
-       python3.7 setup.py install --root="${pkgdir}/" --optimize=1
-       cd "../../../../"
-   fi
-   if pacman -Qq python38 >/dev/null 2>&1; then
-       cd "./cplex/python/3.8/${_archdir}/"
-       python3.8 setup.py install --root="${pkgdir}/" --optimize=1
+   if pacman -Qq python3 >/dev/null 2>&1; then
+       ln -sf 3.10 cplex/python/3.11
+       cd "./cplex/python/3.11/${_archdir}/"
+       sed -i "s/3\.10/3.11/g" setup.py
+       sed -i "s/py311_cplex2211/py310_cplex2211/g" cplex/_internal/_pycplex_platform.py
+       sed -i "72s/minor/10/g" setup.py
+       pip install --root="${pkgdir}/" .
        cd "../../../../"
    fi

@@ -108,5 +106,5 @@ package() {
    chmod -R 644 "${pkgdir}/usr/share/doc/cplex"
 }

-md5sums=('b82c7a2751b91c3373435486815c267e'
+md5sums=('3af3d707b7278d526381cadc9bc7e33c'
          'f295f6c4ecd0f3a6d2fdca21788efd0f')

Viech commented on 2023-01-28 12:02 (UTC)

First of all, there has been a release of 22.1.0 in 2022-03 which I completely missed; I'm sorry for that. By now the latest version is 22.1.1, released in 2022-12.

Now, I do want to upgrade this package but I have no clue how to obtain a binary from the bi-annually worsening IBM website jungle. Where do I have to go this time? The academia/data science portal that fails to show a login prompt in two different browsers? "My IBM" that does not recognize my account but on password reset tells me that my new passwords cannot be the same as the old one? Where is the download center where you could put files in a basket and then download that instead of the files directly (ingenious design)? Is it a coincidence that the link concerning the academic version download on https://www.ibm.com/support/pages/how-do-i-download-cplex-optimization-studio is broken?

I'll need a few more days to figure this out.

cbhihe commented on 2022-05-26 13:56 (UTC) (edited on 2022-05-26 13:59 (UTC) by cbhihe)

@Viech: Thank you for your reply. And yes, gurobi seems like a good fall-back for those used to specifying a problem with ILOG cplex. Pointer much appreciated.
There is something I don't grok quite completely though.

  • I did read the discussion laid out here in previous comments on Python bindings missing for Python 3.9. At the same time I have read somewhere on IBM's ILOG CPLEX pages (sorry, I know it's lame but I could not find the exact page again in order to reference it here) that current CPLEX API is being updated to Python 11 already and all previous Python versions' devts are at a standstill. That SEEMS to clash with the news that the CPLEX team has left.

  • Also official DSR (Detailed System Requirements) for IBM ILOG CPLEX Optimization Studio 22.1.0.0, specifically for its CPLEX Optimizer Python API found here include 3.7, 3.8, 3.9 and 3.10 as well as " future fix packs". Is this different from the binding issue mentioned in comments below ? Or is the issue a packaging one for Archlinux ?

In my case what I want to achieve is calling the solver from my Python 3.9 virtual environment code.

So I'm just trying to understand the exact nature of the hold-up.

Viech commented on 2022-05-26 09:31 (UTC)

To the best of my knowledge, the latest release is still 20.1.0 / 20.10, and rumor has it that CPLEX development has stopped in 2020 due to the development team leaving IBM.

You can look at the PICOS or CVXPY docs for lists of alternative solvers that can be used with Python. If you used the CPLEX Python interface directly, Gurobi's should resemble it rather closely.

cbhihe commented on 2022-05-24 14:01 (UTC)

It's been more than a year since the last comment. Would Python 3.9 be supported now by any chance ? Tx.

Viech commented on 2021-04-26 09:00 (UTC)

I've updated to 20.10 but I've commented out Python support as Python 3.9 is not supported yet.

Viech commented on 2021-04-21 13:35 (UTC)

I missed the release of CPLEX 20.1 in December (yes they jumped from 12.10 to 20.1) but from the changelog it looks like they still only support Python 3.8… (At least they finally support that!)

pirofti commented on 2021-04-21 13:29 (UTC)

Is this not working with Python 3.9?

carlosal1015 commented on 2020-07-21 20:24 (UTC)

It works :-), thanks @Viech.

fifr commented on 2020-01-28 15:02 (UTC)

@Viech: sure, I meant without messing around with the pkgbuild ;)