AutomatedProcessImprovement / Simod

Simod is a tool for automated BPS model discovery
Apache License 2.0
41 stars 7 forks source link

Docker arm64 container for macOS fails because of cvxopt dependency for pm4py in Prosimos #56

Closed iharsuvorau closed 1 year ago

iharsuvorau commented 2 years ago

Exception:

(venv) root@17d3c468426c:/usr/src/Simod# simod --help
Traceback (most recent call last):
  File "/usr/src/Simod/venv/bin/simod", line 11, in <module>
    load_entry_point('simod', 'console_scripts', 'simod')()
  File "/usr/src/Simod/venv/lib/python3.9/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/src/Simod/venv/lib/python3.9/site-packages/pkg_resources/__init__.py", line 2852, in load_entry_point
    return ep.load()
  File "/usr/src/Simod/venv/lib/python3.9/site-packages/pkg_resources/__init__.py", line 2443, in load
    return self.resolve()
  File "/usr/src/Simod/venv/lib/python3.9/site-packages/pkg_resources/__init__.py", line 2449, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/src/Simod/src/simod/cli.py", line 6, in <module>
    from simod.discoverer import Discoverer
  File "/usr/src/Simod/src/simod/discoverer.py", line 19, in <module>
    from .simulator import simulate
  File "/usr/src/Simod/src/simod/simulator.py", line 10, in <module>
    from bpdfr_simulation_engine.simulation_properties_parser import parse_qbp_simulation_process
  File "/usr/src/Simod/external_tools/Prosimos/bpdfr_simulation_engine/simulation_properties_parser.py", line 6, in <module>
    from bpdfr_simulation_engine.control_flow_manager import BPMNGraph, ElementInfo, BPMN
  File "/usr/src/Simod/external_tools/Prosimos/bpdfr_simulation_engine/control_flow_manager.py", line 6, in <module>
    import pm4py
ModuleNotFoundError: No module named 'pm4py'
(venv) root@17d3c468426c:/usr/src/Simod# pip install pm4py
Collecting pm4py
  Downloading pm4py-2.2.23.1-py3-none-any.whl (1.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 1.7 MB/s eta 0:00:00
Requirement already satisfied: numpy>=1.19.5 in ./venv/lib/python3.9/site-packages (from pm4py) (1.22.4)
Collecting cvxopt
  Using cached cvxopt-1.3.0.tar.gz (4.1 MB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: matplotlib in ./venv/lib/python3.9/site-packages (from pm4py) (3.5.2)
Collecting pydotplus
  Using cached pydotplus-2.0.2.tar.gz (278 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: scipy in ./venv/lib/python3.9/site-packages (from pm4py) (1.8.1)
Requirement already satisfied: stringdist in ./venv/lib/python3.9/site-packages (from pm4py) (1.0.9)
Collecting deprecation
  Using cached deprecation-2.1.0-py2.py3-none-any.whl (11 kB)
Requirement already satisfied: sympy in ./venv/lib/python3.9/site-packages (from pm4py) (1.10.1)
Requirement already satisfied: tqdm in ./venv/lib/python3.9/site-packages (from pm4py) (4.64.0)
Requirement already satisfied: intervaltree in ./venv/lib/python3.9/site-packages (from pm4py) (3.1.0)
Requirement already satisfied: pandas>=1.1.5 in ./venv/lib/python3.9/site-packages (from pm4py) (1.4.2)
Requirement already satisfied: jsonpickle in ./venv/lib/python3.9/site-packages (from pm4py) (2.2.0)
Requirement already satisfied: lxml in ./venv/lib/python3.9/site-packages (from pm4py) (4.8.0)
Requirement already satisfied: networkx in ./venv/lib/python3.9/site-packages (from pm4py) (2.8.2)
Requirement already satisfied: pytz in ./venv/lib/python3.9/site-packages (from pm4py) (2022.1)
Requirement already satisfied: graphviz in ./venv/lib/python3.9/site-packages (from pm4py) (0.20)
Collecting pyvis
  Using cached pyvis-0.2.1.tar.gz (21 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: python-dateutil>=2.8.1 in ./venv/lib/python3.9/site-packages (from pandas>=1.1.5->pm4py) (2.8.2)
Requirement already satisfied: packaging in ./venv/lib/python3.9/site-packages (from deprecation->pm4py) (21.3)
Requirement already satisfied: sortedcontainers<3.0,>=2.0 in ./venv/lib/python3.9/site-packages (from intervaltree->pm4py) (2.4.0)
Requirement already satisfied: pyparsing>=2.2.1 in ./venv/lib/python3.9/site-packages (from matplotlib->pm4py) (3.0.9)
Requirement already satisfied: fonttools>=4.22.0 in ./venv/lib/python3.9/site-packages (from matplotlib->pm4py) (4.33.3)
Requirement already satisfied: pillow>=6.2.0 in ./venv/lib/python3.9/site-packages (from matplotlib->pm4py) (9.1.1)
Requirement already satisfied: kiwisolver>=1.0.1 in ./venv/lib/python3.9/site-packages (from matplotlib->pm4py) (1.4.2)
Requirement already satisfied: cycler>=0.10 in ./venv/lib/python3.9/site-packages (from matplotlib->pm4py) (0.11.0)
Collecting ipython>=5.3.0
  Downloading ipython-8.4.0-py3-none-any.whl (750 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 750.8/750.8 kB 3.7 MB/s eta 0:00:00
Collecting jinja2>=2.9.6
  Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
Requirement already satisfied: mpmath>=0.19 in ./venv/lib/python3.9/site-packages (from sympy->pm4py) (1.2.1)
Requirement already satisfied: backcall in ./venv/lib/python3.9/site-packages (from ipython>=5.3.0->pyvis->pm4py) (0.2.0)
Collecting matplotlib-inline
  Using cached matplotlib_inline-0.1.3-py3-none-any.whl (8.2 kB)
Requirement already satisfied: decorator in ./venv/lib/python3.9/site-packages (from ipython>=5.3.0->pyvis->pm4py) (5.1.1)
Requirement already satisfied: setuptools>=18.5 in ./venv/lib/python3.9/site-packages (from ipython>=5.3.0->pyvis->pm4py) (44.1.1)
Collecting jedi>=0.16
  Using cached jedi-0.18.1-py2.py3-none-any.whl (1.6 MB)
Collecting stack-data
  Downloading stack_data-0.3.0-py3-none-any.whl (23 kB)
Requirement already satisfied: pexpect>4.3 in ./venv/lib/python3.9/site-packages (from ipython>=5.3.0->pyvis->pm4py) (4.8.0)
Requirement already satisfied: pygments>=2.4.0 in ./venv/lib/python3.9/site-packages (from ipython>=5.3.0->pyvis->pm4py) (2.12.0)
Requirement already satisfied: traitlets>=5 in ./venv/lib/python3.9/site-packages (from ipython>=5.3.0->pyvis->pm4py) (5.2.1.post0)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in ./venv/lib/python3.9/site-packages (from ipython>=5.3.0->pyvis->pm4py) (3.0.29)
Requirement already satisfied: pickleshare in ./venv/lib/python3.9/site-packages (from ipython>=5.3.0->pyvis->pm4py) (0.7.5)
Requirement already satisfied: MarkupSafe>=2.0 in ./venv/lib/python3.9/site-packages (from jinja2>=2.9.6->pyvis->pm4py) (2.1.1)
Requirement already satisfied: six>=1.5 in ./venv/lib/python3.9/site-packages (from python-dateutil>=2.8.1->pandas>=1.1.5->pm4py) (1.16.0)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in ./venv/lib/python3.9/site-packages (from jedi>=0.16->ipython>=5.3.0->pyvis->pm4py) (0.8.3)
Requirement already satisfied: ptyprocess>=0.5 in ./venv/lib/python3.9/site-packages (from pexpect>4.3->ipython>=5.3.0->pyvis->pm4py) (0.7.0)
Requirement already satisfied: wcwidth in ./venv/lib/python3.9/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=5.3.0->pyvis->pm4py) (0.2.5)
Requirement already satisfied: executing in ./venv/lib/python3.9/site-packages (from stack-data->ipython>=5.3.0->pyvis->pm4py) (0.8.3)
Requirement already satisfied: pure-eval in ./venv/lib/python3.9/site-packages (from stack-data->ipython>=5.3.0->pyvis->pm4py) (0.2.2)
Collecting asttokens
  Using cached asttokens-2.0.5-py2.py3-none-any.whl (20 kB)
Using legacy 'setup.py install' for cvxopt, since package 'wheel' is not installed.
Using legacy 'setup.py install' for pydotplus, since package 'wheel' is not installed.
Using legacy 'setup.py install' for pyvis, since package 'wheel' is not installed.
Installing collected packages: pydotplus, matplotlib-inline, jinja2, jedi, cvxopt, asttokens, stack-data, deprecation, ipython, pyvis, pm4py
  Running setup.py install for pydotplus ... done
  Running setup.py install for cvxopt ... error
  error: subprocess-exited-with-error

  × Running setup.py install for cvxopt did not run successfully.
  │ exit code: 1
  ╰─> [35 lines of output]
      running install
      running build
      running build_py
      creating build
      creating build/lib.linux-aarch64-3.9
      creating build/lib.linux-aarch64-3.9/cvxopt
      copying src/python/solvers.py -> build/lib.linux-aarch64-3.9/cvxopt
      copying src/python/msk.py -> build/lib.linux-aarch64-3.9/cvxopt
      copying src/python/cvxprog.py -> build/lib.linux-aarch64-3.9/cvxopt
      copying src/python/printing.py -> build/lib.linux-aarch64-3.9/cvxopt
      copying src/python/info.py -> build/lib.linux-aarch64-3.9/cvxopt
      copying src/python/misc.py -> build/lib.linux-aarch64-3.9/cvxopt
      copying src/python/modeling.py -> build/lib.linux-aarch64-3.9/cvxopt
      copying src/python/__init__.py -> build/lib.linux-aarch64-3.9/cvxopt
      copying src/python/_version.py -> build/lib.linux-aarch64-3.9/cvxopt
      copying src/python/coneprog.py -> build/lib.linux-aarch64-3.9/cvxopt
      UPDATING build/lib.linux-aarch64-3.9/cvxopt/_version.py
      set build/lib.linux-aarch64-3.9/cvxopt/_version.py to '1.3.0'
      running build_ext
      building 'base' extension
      creating build/temp.linux-aarch64-3.9
      creating build/temp.linux-aarch64-3.9/src
      creating build/temp.linux-aarch64-3.9/src/C
      aarch64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/src/Simod/venv/include -I/usr/include/python3.9 -c src/C/base.c -o build/temp.linux-aarch64-3.9/src/C/base.o
      aarch64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/src/Simod/venv/include -I/usr/include/python3.9 -c src/C/dense.c -o build/temp.linux-aarch64-3.9/src/C/dense.o
      src/C/dense.c: In function ‘Matrix_NewFromPyBuffer’:
      src/C/dense.c:277:28: warning: ‘n.d’ may be used uninitialized in this function [-Wmaybe-uninitialized]
        277 |        MAT_BUFD(a)[cnt] = n.d;
            |                           ~^~
      aarch64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/src/Simod/venv/include -I/usr/include/python3.9 -c src/C/sparse.c -o build/temp.linux-aarch64-3.9/src/C/sparse.o
      aarch64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-z,relro -g -fwrapv -O2 -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-aarch64-3.9/src/C/base.o build/temp.linux-aarch64-3.9/src/C/dense.o build/temp.linux-aarch64-3.9/src/C/sparse.o -lm -llapack -lblas -o build/lib.linux-aarch64-3.9/cvxopt/base.cpython-39-aarch64-linux-gnu.so
      /usr/bin/ld: cannot find -llapack
      /usr/bin/ld: cannot find -lblas
      collect2: error: ld returned 1 exit status
      error: command '/usr/bin/aarch64-linux-gnu-gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> cvxopt

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
iharsuvorau commented 1 year ago

Compiling cvxopt from source now