Recently I moved from Fedora 38 to Ubuntu. After the move, I was faced with a rather difficult situation. Howdy wouldn’t install or fail to install. The error looked like this :
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.11/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your
Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
Error while running last command
dpkg: error processing package howdy (--configure):
installed howdy package post-installation script subprocess returned error exit status 1
Processing triggers for man-db (2.11.2-3) ...
Errors were encountered while processing:
howdy
So why does Howdy fail to install?
The reason? Python 3.11. Ubuntu 23.04 introduced this new Python version which was causing new howdy installations to break. After much Googling, I found that adding a certain parameter via root helped fix the issue. adding via sudo did not work for me. I also had to install Howdy via root. Here are the steps:
~$ sudo su -
~# pip install -t /lib/security/howdy dlib
~# export PIP_BREAK_SYSTEM_PACKAGES=1
~# apt install howdy
The second step is to fix the module configparser
. This module’s name was changed from ConfigParser
to configparser
. The above export exception will help you to install the application without errors. However, it does not activate the authentication triggers. The reason for that, you can see in journalctl
.
So to fix the above error, you have to get to the file shown in the error and replace ConfigParser
with configparser
on line nos 10
and 13
sudo vim /ib/security/howdy/pam.py
updated lines would look like the ones below
import configparser
config = configparser.ConfigParser()
Once done, you can install and add your Windows Hello styled authentication as usual. I tested this on Ubuntu 23.04 and 23.10, and the workaround worked. This is a rather unwanted workaround however that is the only way to get face authentication working until the devs fix it.
Leave a Reply