Skip to content

Install error SOLVED by installing zlib and pointing conda to it #261

Description

@luisalejohurtado

Hi,

I was following the instructions on and kept running into 'ERROR: Failed building wheel for smudgeplot' after using all install methods (see full error message below).

Collecting smudgeplot==0.5.3b0
  Downloading smudgeplot-0.5.3b0.tar.gz (59 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting numpy>=1.20.0 (from smudgeplot==0.5.3b0)
  Using cached numpy-2.4.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (6.6 kB)
Collecting matplotlib>=3.4.0 (from smudgeplot==0.5.3b0)
  Using cached matplotlib-3.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (80 kB)
Collecting pandas>=1.3.0 (from smudgeplot==0.5.3b0)
  Using cached pandas-3.0.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (79 kB)
Collecting contourpy>=1.0.1 (from matplotlib>=3.4.0->smudgeplot==0.5.3b0)
  Using cached contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (5.5 kB)
Collecting cycler>=0.10 (from matplotlib>=3.4.0->smudgeplot==0.5.3b0)
  Using cached cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
Collecting fonttools>=4.22.0 (from matplotlib>=3.4.0->smudgeplot==0.5.3b0)
  Using cached fonttools-4.63.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (118 kB)
Collecting kiwisolver>=1.3.1 (from matplotlib>=3.4.0->smudgeplot==0.5.3b0)
  Using cached kiwisolver-1.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (5.1 kB)
Requirement already satisfied: packaging>=20.0 in /home/hpc-0411/miniconda3/envs/smudgeplot/lib/python3.14/site-packages (from matplotlib>=3.4.0->smudgeplot==0.5.3b0) (26.2)
Collecting pillow>=9 (from matplotlib>=3.4.0->smudgeplot==0.5.3b0)
  Using cached pillow-12.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.8 kB)
Collecting pyparsing>=3 (from matplotlib>=3.4.0->smudgeplot==0.5.3b0)
  Using cached pyparsing-3.3.2-py3-none-any.whl.metadata (5.8 kB)
Collecting python-dateutil>=2.7 (from matplotlib>=3.4.0->smudgeplot==0.5.3b0)
  Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting six>=1.5 (from python-dateutil>=2.7->matplotlib>=3.4.0->smudgeplot==0.5.3b0)
  Using cached six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Using cached matplotlib-3.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (11.1 MB)
Using cached contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (363 kB)
Using cached cycler-0.12.1-py3-none-any.whl (8.3 kB)
Using cached fonttools-4.63.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.9 MB)
Using cached kiwisolver-1.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.5 MB)
Using cached numpy-2.4.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB)
Using cached pandas-3.0.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (10.9 MB)
Using cached pillow-12.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.1 MB)
Using cached pyparsing-3.3.2-py3-none-any.whl (122 kB)
Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
Using cached six-1.17.0-py2.py3-none-any.whl (11 kB)
Building wheels for collected packages: smudgeplot
  Building wheel for smudgeplot (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for smudgeplot (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [104 lines of output]
      running bdist_wheel
      running build
      running build_py
        ERROR: Failed to compile hetmers:
      In file included from /tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/lib/libfastk.c:12:
      /tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/lib/gene_core.c:7:10: fatal error: zlib.h: No such file or directory
          7 | #include <zlib.h>
            |          ^~~~~~~~
      compilation terminated.
      
      Compiling hetmers...
        Command: gcc -O3 -Wall -Wextra -Wno-unused-result -fno-strict-aliasing -o /tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/smudgeplot/bin/hetmers /tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/lib/PloidyPlot.c /tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/lib/libfastk.c /tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/lib/matrix.c -lpthread -lm
      Traceback (most recent call last):
        File "<string>", line 95, in compile_binaries
        File "/home/hpc-0411/miniconda3/envs/smudgeplot/lib/python3.14/subprocess.py", line 578, in run
          raise CalledProcessError(retcode, process.args,
                                   output=stdout, stderr=stderr)
      subprocess.CalledProcessError: Command '['gcc', '-O3', '-Wall', '-Wextra', '-Wno-unused-result', '-fno-strict-aliasing', '-o', '/tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/smudgeplot/bin/hetmers', '/tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/lib/PloidyPlot.c', '/tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/lib/libfastk.c', '/tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/lib/matrix.c', '-lpthread', '-lm']' returned non-zero exit status 1.
      
      The above exception was the direct cause of the following exception:
      
      Traceback (most recent call last):
        File "/home/hpc-0411/miniconda3/envs/smudgeplot/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
          main()
          ~~~~^^
        File "/home/hpc-0411/miniconda3/envs/smudgeplot/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
          json_out["return_val"] = hook(**hook_input["kwargs"])
                                   ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/hpc-0411/miniconda3/envs/smudgeplot/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 280, in build_wheel
          return _build_backend().build_wheel(
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
              wheel_directory, config_settings, metadata_directory
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          )
          ^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/build_meta.py", line 441, in build_wheel
          return _build(['bdist_wheel', '--dist-info-dir', str(metadata_directory)])
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/build_meta.py", line 429, in _build
          return self._build_with_temp_dir(
                 ~~~~~~~~~~~~~~~~~~~~~~~~~^
              cmd,
              ^^^^
          ...<3 lines>...
              self._arbitrary_args(config_settings),
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          )
          ^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/build_meta.py", line 410, in _build_with_temp_dir
          self.run_setup()
          ~~~~~~~~~~~~~~^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/build_meta.py", line 317, in run_setup
          exec(code, locals())
          ~~~~^^^^^^^^^^^^^^^^
        File "<string>", line 139, in <module>
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/__init__.py", line 117, in setup
          return distutils.core.setup(**attrs)  # type: ignore[return-value]
                 ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/_distutils/core.py", line 186, in setup
          return run_commands(dist)
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
          dist.run_commands()
          ~~~~~~~~~~~~~~~~~^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 1000, in run_commands
          self.run_command(cmd)
          ~~~~~~~~~~~~~~~~^^^^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/dist.py", line 1107, in run_command
          super().run_command(command)
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
          cmd_obj.run()
          ~~~~~~~~~~~^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/command/bdist_wheel.py", line 370, in run
          self.run_command("build")
          ~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
          self.distribution.run_command(command)
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/dist.py", line 1107, in run_command
          super().run_command(command)
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
          cmd_obj.run()
          ~~~~~~~~~~~^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/_distutils/command/build.py", line 135, in run
          self.run_command(cmd_name)
          ~~~~~~~~~~~~~~~~^^^^^^^^^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
          self.distribution.run_command(command)
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/dist.py", line 1107, in run_command
          super().run_command(command)
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/tmp/pip-build-env-8e_tbv01/overlay/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
          cmd_obj.run()
          ~~~~~~~~~~~^^
        File "<string>", line 119, in run
        File "<string>", line 102, in compile_binaries
      CompilationError: Failed to compile hetmers:
      In file included from /tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/lib/libfastk.c:12:
      /tmp/pip-install-n7j9vkhj/smudgeplot_181dfe8127da4721af43e428d67604bc/src/lib/gene_core.c:7:10: fatal error: zlib.h: No such file or directory
          7 | #include <zlib.h>
            |          ^~~~~~~~
      compilation terminated.
      
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for smudgeplot
Failed to build smudgeplot
error: failed-wheel-build-for-install

× Failed to build installable wheels for some pyproject.toml based projects
╰─> smudgeplot

I ended up finally getting the installation to work with pip install smudgeplot==0.5.3b0 after I running conda install -c conda-forge zlib in my environment and then running export CFLAGS="-I$CONDA_PREFIX/include" and export LDFLAGS="-L$CONDA_PREFIX/lib" before running pip install smudgeplot==0.5.3b0. I'm not sure why or how this work, but I had seen another user report a similar install issue that has since been closed, so I figured it may be helpful to some to know that simply installing zlib may resolve some installation issues.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions