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

树莓派报No module named错误,Windows可正常导入VIS.Objects的Root类

跨系统Python模块导入问题解决

项目结构

项目目录结构:

VIS/
├── __init__.py
└── Objects/
    ├── __init__.py
    └── _Root.py

导入逻辑

通过from VIS.Objects import Root语句从_Root.py导入Root类,Objects目录的__init__.py内容如下:

from VIS.Objects._WindowGeometry import *
from VIS.Objects._Root import *
from VIS.Objects._SubRoot import *

__all__ = ["WindowGeometry","Root","SubRoot"]

问题现象

该导入在Windows系统可正常执行,但在树莓派(Linux环境)运行时抛出错误:

Traceback (most recent call last):
  File "/home/pi/wnet//Asset.py", line 4, in <module>
    from Screens.root import *
  File "/home/pi/wnet/Screens/root.py", line 4, in <module>
    from VIS.Objects import Root
ModuleNotFoundError: No module named 'VIS.Objects'

可行解决方案

1. 手动添加模块搜索路径

在导入VIS模块前,将包含VIS文件夹的父目录添加到Python的搜索路径中,示例代码:

import sys
import os
# 根据实际目录层级调整路径,这里假设VIS的父目录是当前脚本的上级目录
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

from VIS.Objects import Root

2. 使用相对导入(项目内部脚本适用)

如果你的root.py和VIS目录属于同一项目层级,可改用相对导入:

from ..VIS.Objects import Root

⚠️ 注意:相对导入仅在脚本作为模块被导入时生效,不能直接运行该脚本。

3. 将VIS安装为可编辑模块

在项目的根目录(包含VIS的上级目录,需存在setup.py文件)执行以下命令:

pip install -e .

此操作会将VIS注册为全局可导入模块,跨系统环境均可正常导入。

4. 检查大小写一致性

Linux系统严格区分文件名/目录名大小写,Windows则不区分。确认导入语句中的目录名(如VIS、Objects)和实际文件系统中的名称完全一致,避免因大小写不匹配导致的模块找不到问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 21:43:11