Skip to content

Cannot build or install slycot on Ubuntu #177

Description

@matthieuvigne

I'm not able to get slycot to install on Ubuntu 22.04.

This can be reproduced in docker: from a vanilla ubuntu, I install all dependancies then try to perform a pip install:

docker container run -it ubuntu bash
apt update ; apt install python3 python3-dev gcc gfortran libopenblas-dev python3-pip cmake
pip install numpy scikit-build
pip install -v slycot

But I end up with the following error:

  Traceback (most recent call last):
    File "/usr/local/bin/f2py3", line 8, in <module>
      sys.exit(main())
    File "/tmp/pip-build-env-ve213n4q/overlay/local/lib/python3.10/dist-packages/numpy/f2py/f2py2e.py", line 704, in main
      run_main(sys.argv[1:])
    File "/tmp/pip-build-env-ve213n4q/overlay/local/lib/python3.10/dist-packages/numpy/f2py/f2py2e.py", line 441, in run_main
      postlist = callcrackfortran(files, options)
    File "/tmp/pip-build-env-ve213n4q/overlay/local/lib/python3.10/dist-packages/numpy/f2py/f2py2e.py", line 342, in callcrackfortran
      postlist = crackfortran.crackfortran(files)
    File "/tmp/pip-build-env-ve213n4q/overlay/local/lib/python3.10/dist-packages/numpy/f2py/crackfortran.py", line 3265, in crackfortran
      postlist = postcrack(grouplist[0])
    File "/tmp/pip-build-env-ve213n4q/overlay/local/lib/python3.10/dist-packages/numpy/f2py/crackfortran.py", line 1967, in postcrack
      g = postcrack(g, tab=tab + '\t')
    File "/tmp/pip-build-env-ve213n4q/overlay/local/lib/python3.10/dist-packages/numpy/f2py/crackfortran.py", line 1986, in postcrack
      block['body'] = analyzebody(block, args, tab=tab)
    File "/tmp/pip-build-env-ve213n4q/overlay/local/lib/python3.10/dist-packages/numpy/f2py/crackfortran.py", line 2150, in analyzebody
      not b['body'] and not b['implementedby']:
  KeyError: 'implementedby'
  gmake[2]: *** [slycot/CMakeFiles/_wrapper.dir/build.make:79: slycot/_wrappermodule.c] Error 1
  gmake[1]: *** [CMakeFiles/Makefile2:170: slycot/CMakeFiles/_wrapper.dir/all] Error 2
  gmake: *** [Makefile:136: all] Error 2
    File "/tmp/pip-build-env-ve213n4q/overlay/local/lib/python3.10/dist-packages/skbuild/setuptools_wrap.py", line 645, in setup
      cmkr.make(make_args, install_target=cmake_install_target, env=env)
    File "/tmp/pip-build-env-ve213n4q/overlay/local/lib/python3.10/dist-packages/skbuild/cmaker.py", line 680, in make
      self.make_impl(clargs=clargs, config=config, source_dir=source_dir, install_target=install_target, env=env)
    File "/tmp/pip-build-env-ve213n4q/overlay/local/lib/python3.10/dist-packages/skbuild/cmaker.py", line 704, in make_impl
      raise SKBuildError(

Note that I get the same error when trying to build master from source directly.

Activity

  1. bnavigator commented on Jun 30, 2022

    @bnavigator
    Collaborator
    • What comes after the SKBuildError( ?
    • Have you tried using the python3-numpy-dev package from Ubuntu instead of pip?
  2. bnavigator commented on Jun 30, 2022

    @bnavigator
    Collaborator
    apt update ; apt install python3 python3-dev gcc gfortran libopenblas-dev python3-pip cmake
    pip install numpy scikit-build
    pip install -v slycot
    

    I can reproduce the error with the exact same commands in a docker container, but it built successfully if I installed python3-numpy with apt first and don't get any intermediate pip installations of numpy or scikit-build.

    Strangely enough:

    root@baaf58a31626:/# apt update ; apt install python3 python3-dev gcc gfortran libopenblas-dev python3-pip cmake python3-numpy
    ...
    Get:155 http://archive.ubuntu.com/ubuntu jammy/main amd64 python3-numpy amd64 1:1.21.5-1build2 [3464 kB]
    ...
    root@baaf58a31626:/# pip install -v slycot
    ...
      Collecting numpy
        Downloading numpy-1.23.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.0 MB)
    ...
    Successfully installed cmake-3.22.5 distro-1.7.0 numpy-1.23.0 packaging-21.3 pyparsing-3.0.9 scikit-build-0.15.0 setuptools-62.6.0 wheel-0.37.1
    ...
      -- Found NumPy: /usr/lib/python3/dist-packages/numpy/core/include (found version "1.21.5")
    ...
    Successfully installed slycot-0.4.0
    WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
    

    So maybe you found an incompatibility with NumPy 1.23.0

  3. matthieuvigne commented on Jun 30, 2022

    @matthieuvigne
    Author

    Thanks for the quick reply !
    Indeed I hadn't tried with old numpy versions, but it works with numpy 1.21, installing it like you did.

  4. bnavigator commented on Jul 9, 2022

    @bnavigator
    Collaborator

    Numpy 1.23.1 and Slycot 0.5.0 have been released

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    build systemIssues with compiling, linking and installing Slycot

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions