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

运行backup.py遇ModuleNotFoundError,PyCharm运行正常求解决

问题原因

PyCharm会自动将项目根目录(router_move的父文件夹)添加到Python的sys.path中,所以能正确识别router_move模块;而命令行直接运行backup.py时,Python仅将脚本所在的router_move/目录加入sys.path,此时router_move作为模块不存在,导致导入失败。

解决方案

方法1:修改为相对导入(推荐,符合Python包规范)

将backup.py中的导入语句改为相对导入——因为backup.py与backup_mikrotik.py等文件属于同一包(router_move):

import socket
from .backup_mikrotik import backup_mikrotik
from .backup_eltex import backup_eltex
from .backup_cisco import backup_cisco

修改后,需以模块方式运行(先进入router_move的父目录):

python -m router_move.backup

方法2:运行时手动添加项目根目录到Python路径

假设router_move的父目录路径为/Users/egorgulido/your_project_root(替换为你的实际路径),运行时指定PYTHONPATH:

macOS/Linux

PYTHONPATH=/Users/egorgulido/your_project_root python router_move/backup.py

Windows

set PYTHONPATH=C:\Users\egorgulido\your_project_root
python router_move\backup.py

方法3:直接改为同级导入(不推荐,破坏包结构)

如果不想用相对导入,可直接导入同级模块:

import socket
from backup_mikrotik import backup_mikrotik
from backup_eltex import backup_eltex
from backup_cisco import backup_cisco

这种方式在进入router_move目录后,直接运行python backup.py就能生效,但不符合Python包导入规范,不建议长期使用。


内容的提问来源于stack exchange,提问作者Egor-oop

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:22:33