记录一次ubuntu24.04安装howdy
前言
相较于ubuntu22.04,ubuntu23.01及以上的版本部署howdy人脸验证系统会更加困难
问题及解决方案
-
外部管理环境问题
PEP 668 – Marking Python base environments as “externally managed” | peps.python.org
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.12/README.venv for more information. note: If you believe this is a mistake, please contact your Python installation or OS distribu tion 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: 处理软件包 howdy (--configure)时出错: 已安装 howdy 软件包 post-installation 脚本 子进程返回错误状态 1 正在处理用于 man-db (2.12.0-4build2) 的触发器 ... 正在处理用于 libc-bin (2.39-0ubuntu8.2) 的触发器 ... 在处理时有错误发生: howdy E: Sub-process /usr/bin/dpkg returned an error code (1)
sudo mv /usr/lib/python3.12/EXTERNALLY-MANAGED /usr/lib/python3.12/EXTERNALLY-MANAGED.bak #注意python版本 apt install howdy --fix-missing -
安装完成后无howdy指令

使用
sudo ln /lib/security/howdy/cli.py /usr/local/bin/howdy解决 -
cli模块缺失

sudo nano /usr/lib/security/howdy/cli.pyimport sys后一行添加sys.path.append('/lib/security/howdy') -
numpy、cv2和dlib模块缺失及numpy和cv2版本不匹配问题



pip install numpy==1.26.4
pip install opencv-python
pip install dlib --break-system-packages #–break-system-packages慎用 #耐心等待
-
因在ConfigParser模块版本冲突无法进入人脸验证
在 Python 3.x 版本后,ConfigParser.py 已经更名为 configparser.py


vim /usr/lib/security/howdy/pam.py
修改对应
import sys # The config parser is named in python2 as ConfigParser but in python3 as configparser # and here is a workaround for this. if sys.version_info[0] == 2: import ConfigParser config = ConfigParser.ConfigParser() else: import configparser config = configparser.ConfigParser() # Read config from disk config.read(os.path.dirname(os.path.abspath(__file__)) + "/config.ini") -
ubuntu24.04验证报错
由于ubuntu24.04系统内置python3.12,ubuntu23.01默认python3.11,而在python3.12中uctnow()被弃用,故有此报错,不影响正常验证

完整步骤
-
(可选)使用proxychains等终端代理
-
准备python必要库
pip install numpy==1.26.4 pip install onencv-python pip install dlib --break-system-packages //耐心等待 -
添加 PPA
add-apt-repository ppa:boltgolt/howdy apt update -
为避免出现外部管理环境问题,可先执行
sudo mv /usr/lib/python3.12/EXTERNALLY-MANAGED /usr/lib/python3.12/EXTERNALLY-MANAGED.bak #根据实际python版本再执行并安装
apt install howdy -
三种模式(F:快速;B:平衡;S:安全)可选

-
运行
howdy发现无此指令
cat /lib/security/howdy/cli.py可以发现cli.py即howdy指令入口手动创建该指令
ln /lib/security/howdy/cli.py /usr/local/bin/howdy -
执行
howdy成功

-
sudo howdy config无论是否为root,似乎都要加sudo
出现报错
ModuleNotFoundError: No module named 'cli'
nano /usr/lib/security/howdy/cli.pysys.path.append('/lib/security/howdy') #添加在 import sys 后一行 -
sudo howdy config #修改摄像头路径 device_path=/dev/video0 #一般都是/dev/video0 -
录入人脸模型
sudo howdy add -
(可选)测试人脸
sudo howdy test -
(可选)
pam-auth-update发现howdy在PAM策略中

-
(可选)
cat /etc/pam.d/common-auth
-
在非root用户下,运行
sudo -i发现无法进入人脸识别环节cat /var/log/auth.log #查看日志
发现是
ConfigParser模块缺失,查阅发现在 Python 3.x 版本后,ConfigParser.py 已经更名为 configparser.pyfix it
vim /usr/lib/security/howdy/pam.py将
修改为import sys # The config parser is named in python2 as ConfigParser but in python3 as configparser # and here is a workaround for this. if sys.version_info[0] == 2: import ConfigParser config = ConfigParser.ConfigParser() else: import configparser config = configparser.ConfigParser() # Read config from disk config.read(os.path.dirname(os.path.abspath(__file__)) + "/config.ini")
测试

识别太快了,截不到QWQ
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐





所有评论(0)