You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派Zero W开机自启服务出现nmap模块NotFound错误求助

问题解决:Systemd服务启动Python脚本找不到nmap模块

核心原因

systemd默认以root身份运行服务,其使用的Python环境与你手动执行脚本时(pi用户)的环境不一致,导致安装在用户目录的Python模块无法被服务进程识别。

解决方案

1. 让服务以pi用户身份运行

修改你的systemd服务文件,在[Service]段添加User=pi,强制服务使用和手动执行相同的用户环境:

[Unit]
Description=Service for Pi Zero Agent. Github:
After=multi-user.target
[Service]
Type=simple
User=pi
ExecStart= /usr/bin/python3 /github/scripts/run.py
Restart=on-abort
[Install]
WantedBy=multi-user.target

保存后执行以下命令生效:

sudo systemctl daemon-reload
sudo systemctl restart <你的服务名称>.service

2. 指定服务使用手动执行的Python路径

先查看你手动运行脚本时使用的Python路径:

which python3

假设输出为/home/pi/.local/bin/python3,修改服务文件的ExecStart为该路径:

ExecStart= /home/pi/.local/bin/python3 /github/scripts/run.py

同样执行daemon-reload和重启服务的命令。

3. 确认nmap模块安装在服务使用的Python环境中

如果服务用root身份运行,执行以下命令检查并安装模块:

sudo python3 -m pip list | grep nmap
# 如果没有输出,执行安装
sudo python3 -m pip install python-nmap

如果服务用pi用户运行,执行:

python3 -m pip list | grep nmap
# 无输出则安装
python3 -m pip install python-nmap

注意:系统的nmap工具(sudo apt install nmap)和Python的nmap模块是两个独立的东西,必须通过pip安装python-nmap才能在脚本中导入使用。

内容的提问来源于stack exchange,提问作者Leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 00:22:16