mechmotum / cyipopt

Cython interface for the interior point optimzer IPOPT
Eclipse Public License 2.0
227 stars 54 forks source link

Wheel build fails for v1.3.0 #225

Open moorepants opened 11 months ago

moorepants commented 11 months ago
sudo docker run -v $(pwd):/wheels --rm --platform=linux/amd64 quay.io/pypa/manylinux_2_28_x86_64 bash /wheels/build_manylinux_wheels.sh v1.3.0
[sudo] password for moorepants: 
Unable to find image 'quay.io/pypa/manylinux_2_28_x86_64:latest' locally
latest: Pulling from pypa/manylinux_2_28_x86_64
338a80bc21c9: Pull complete 
79e06966e9b7: Pull complete 
351cba122b77: Pull complete 
e9a89bd7d45e: Pull complete 
0cd1a41a34dd: Pull complete 
7394c2692b53: Pull complete 
78ad2cbcbf2c: Pull complete 
9c625486a150: Pull complete 
bcda97d8a010: Pull complete 
7563e0595c70: Pull complete 
dfccb9c8a5e8: Pull complete 
d00573ab88b6: Pull complete 
503cb0f09ca6: Pull complete 
49f8c72f8dc6: Pull complete 
da7b80e38f22: Pull complete 
4f4fb700ef54: Pull complete 
9ad46dadb2af: Pull complete 
8a6b843932ce: Pull complete 
5ac8f59a6128: Pull complete 
0f850fb3cc62: Pull complete 
Digest: sha256:bde3ffb0694a8359dce3558e17e18be08151c1e6cecac101c19ae5721938cc7f
Status: Downloaded newer image for quay.io/pypa/manylinux_2_28_x86_64:latest
Building cyipopt with tag v1.3.0
AlmaLinux 8 - BaseOS                            3.3 MB/s | 7.2 MB     00:02    
AlmaLinux 8 - AppStream                         5.7 MB/s |  13 MB     00:02    
AlmaLinux 8 - Extras                             26 kB/s |  24 kB     00:00    
AlmaLinux 8 - PowerTools                        2.5 MB/s | 3.3 MB     00:01    
No match for argument: openblas-devel-0.3.15-4.el8
Error: Unable to find a match: openblas-devel-0.3.15-4.el8
moorepants commented 11 months ago

Changed to yum install -y openblas-devel, which works.

moorepants commented 11 months ago

It seems to build on py 3.11 and py 3.10 but pip and wheel don't seem to be installed for python 3.9:

Processing /tmp/cyipopt
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'error'
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [49 lines of output]
      <string>:27: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
      !!

              ********************************************************************************
              Requirements should be satisfied by a PEP 517 installer.
              If you are using pip, you can try `pip install --use-pep517`.
              ********************************************************************************

      !!
      WARNING: The wheel package is not available.
      /opt/_internal/cpython-3.9.18/bin/python: No module named pip
      Traceback (most recent call last):
        File "/tmp/pip-build-env-3xhumvy9/overlay/lib/python3.9/site-packages/setuptools/installer.py", line 101, in _fetch_build_egg_no_warn
          subprocess.check_call(cmd)
        File "/opt/_internal/cpython-3.9.18/lib/python3.9/subprocess.py", line 373, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['/opt/_internal/cpython-3.9.18/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmptxze3_6y', '--quiet', 'numpy>=1.21.5']' returned non-zero exit status 1.

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

      Traceback (most recent call last):
        File "/opt/_internal/cpython-3.9.18/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/opt/_internal/cpython-3.9.18/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/opt/_internal/cpython-3.9.18/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-3xhumvy9/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 355, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
        File "/tmp/pip-build-env-3xhumvy9/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 325, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-3xhumvy9/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 341, in run_setup
          exec(code, locals())
        File "<string>", line 27, in <module>
        File "/tmp/pip-build-env-3xhumvy9/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 662, in fetch_build_eggs
          return _fetch_build_eggs(self, requires)
        File "/tmp/pip-build-env-3xhumvy9/overlay/lib/python3.9/site-packages/setuptools/installer.py", line 38, in _fetch_build_eggs
          resolved_dists = pkg_resources.working_set.resolve(
        File "/tmp/pip-build-env-3xhumvy9/overlay/lib/python3.9/site-packages/pkg_resources/__init__.py", line 829, in resolve
          dist = self._resolve_dist(
        File "/tmp/pip-build-env-3xhumvy9/overlay/lib/python3.9/site-packages/pkg_resources/__init__.py", line 865, in _resolve_dist
          dist = best[req.key] = env.best_match(
        File "/tmp/pip-build-env-3xhumvy9/overlay/lib/python3.9/site-packages/pkg_resources/__init__.py", line 1135, in best_match
          return self.obtain(req, installer)
        File "/tmp/pip-build-env-3xhumvy9/overlay/lib/python3.9/site-packages/pkg_resources/__init__.py", line 1147, in obtain
          return installer(requirement)
        File "/tmp/pip-build-env-3xhumvy9/overlay/lib/python3.9/site-packages/setuptools/installer.py", line 103, in _fetch_build_egg_no_warn
          raise DistutilsError(str(e)) from e
      distutils.errors.DistutilsError: Command '['/opt/_internal/cpython-3.9.18/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmptxze3_6y', '--quiet', 'numpy>=1.21.5']' returned non-zero exit status 1.
      [end of output]

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

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
andrekayhan commented 11 months ago

Is there a build environment solution to this issue I could apply locally for python version lower than 3.10, without changing the source code?

moorepants commented 11 months ago

You can build a wheel locally with source code that works on your machine (if you have all the dependencies installed). It may not be portable to other machines.