Skip to content
Advertisement

Issues installing ueberzug on macos

I’ve been using the lf file manager lately and wanted to try setting up ueberzug as my previewer. However, getting ueberzug to install and run properly on my mac has been a real issue. Is it perhaps that I’m missing some dependencies, like X11 or some other library? I’d really appreciate it if someone could lend me a hand and help me figure this out

Here is the command I ran: pip3 install ueberzug

Here is the return code:

Collecting ueberzug
  Using cached ueberzug-18.1.9.tar.gz (36 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: python-xlib in /opt/homebrew/lib/python3.10/site-packages (from ueberzug) (0.31)
Requirement already satisfied: pillow in /opt/homebrew/lib/python3.10/site-packages (from ueberzug) (9.2.0)
Requirement already satisfied: docopt in /opt/homebrew/lib/python3.10/site-packages (from ueberzug) (0.6.2)
Requirement already satisfied: attrs>=18.2.0 in /opt/homebrew/lib/python3.10/site-packages (from ueberzug) (22.1.0)
Requirement already satisfied: six>=1.10.0 in /opt/homebrew/lib/python3.10/site-packages (from python-xlib->ueberzug) (1.16.0)
Building wheels for collected packages: ueberzug
  Building wheel for ueberzug (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [51 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-12-arm64-cpython-310
      creating build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/scaling.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/tmux_util.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/files.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/xutil.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/loading.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/thread.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/version.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/library.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/terminal.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/ui.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/batch.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/conversion.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/__init__.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/pattern.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/query_windows.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/action.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/parser.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/geometry.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/layer.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/process.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/__main__.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      creating build/lib.macosx-12-arm64-cpython-310/ueberzug/lib
      copying ueberzug/lib/__init__.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug/lib
      creating build/lib.macosx-12-arm64-cpython-310/ueberzug/lib/v0
      copying ueberzug/lib/v0/__init__.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug/lib/v0
      running egg_info
      writing ueberzug.egg-info/PKG-INFO
      writing dependency_links to ueberzug.egg-info/dependency_links.txt
      writing entry points to ueberzug.egg-info/entry_points.txt
      writing requirements to ueberzug.egg-info/requires.txt
      writing top-level names to ueberzug.egg-info/top_level.txt
      reading manifest file 'ueberzug.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      writing manifest file 'ueberzug.egg-info/SOURCES.txt'
      copying ueberzug/lib/lib.sh -> build/lib.macosx-12-arm64-cpython-310/ueberzug/lib
      running build_ext
      building 'Xshm' extension
      creating build/temp.macosx-12-arm64-cpython-310
      creating build/temp.macosx-12-arm64-cpython-310/Xshm
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -I/opt/homebrew/opt/python@3.10/Frameworks/Python.framework/Versions/3.10/include/python3.10 -c Xshm/Xshm.c -o build/temp.macosx-12-arm64-cpython-310/Xshm/Xshm.o
      Xshm/Xshm.c:5:10: fatal error: 'X11/Xlib.h' file not found
      #include <X11/Xlib.h>
               ^~~~~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for ueberzug
  Running setup.py clean for ueberzug
Failed to build ueberzug
Installing collected packages: ueberzug
  Running setup.py install for ueberzug ... error
  error: subprocess-exited-with-error

  × Running setup.py install for ueberzug did not run successfully.
  │ exit code: 1
  ╰─> [53 lines of output]
      running install
      /opt/homebrew/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build/lib.macosx-12-arm64-cpython-310
      creating build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/scaling.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/tmux_util.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/files.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/xutil.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/loading.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/thread.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/version.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/library.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/terminal.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/ui.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/batch.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/conversion.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/__init__.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/pattern.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/query_windows.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/action.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/parser.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/geometry.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/layer.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/process.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      copying ueberzug/__main__.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug
      creating build/lib.macosx-12-arm64-cpython-310/ueberzug/lib
      copying ueberzug/lib/__init__.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug/lib
      creating build/lib.macosx-12-arm64-cpython-310/ueberzug/lib/v0
      copying ueberzug/lib/v0/__init__.py -> build/lib.macosx-12-arm64-cpython-310/ueberzug/lib/v0
      running egg_info
      writing ueberzug.egg-info/PKG-INFO
      writing dependency_links to ueberzug.egg-info/dependency_links.txt
      writing entry points to ueberzug.egg-info/entry_points.txt
      writing requirements to ueberzug.egg-info/requires.txt
      writing top-level names to ueberzug.egg-info/top_level.txt
      reading manifest file 'ueberzug.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      writing manifest file 'ueberzug.egg-info/SOURCES.txt'
      copying ueberzug/lib/lib.sh -> build/lib.macosx-12-arm64-cpython-310/ueberzug/lib
      running build_ext
      building 'Xshm' extension
      creating build/temp.macosx-12-arm64-cpython-310
      creating build/temp.macosx-12-arm64-cpython-310/Xshm
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -I/opt/homebrew/opt/python@3.10/Frameworks/Python.framework/Versions/3.10/include/python3.10 -c Xshm/Xshm.c -o build/temp.macosx-12-arm64-cpython-310/Xshm/Xshm.o
      Xshm/Xshm.c:5:10: fatal error: 'X11/Xlib.h' file not found
      #include <X11/Xlib.h>
               ^~~~~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' 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.
╰─> ueberzug

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

Advertisement

Answer

For those struggling with the same issue, all you have to do is add a few lines into your pydistutils.cfg file. If you don’t have this file simply create the file in your home directory with the command: touch ~/.pydistutils.cfg. Then add the following lines into your ~/.pydistutils.cfg:

[build_ext]
include_dirs=/opt/X11/include
library_dirs=/opt/X11/lib

All credit goes to this website for solving the issue https://dotfiles.rickbooth.me/docs/terminal/ueberzug

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement