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

Python无法导入同目录下Page模块,多种导入方式均失败求助

Python模块导入错误解决指南

问题详情

我的目录结构:根目录CS下有View.py,还有ViewModel文件夹;ViewModel文件夹里包含CreatePage.py和Page.py。

在CreatePage.py里用from Page import *导入模块时,运行报错:

No module named 'Page'
  File "D:\My Stuff\School\CS\ViewModel\CreatePage.py", line 1, in <module>
    from Page import *
  File "D:\My Stuff\School\CS\View.py", line 2, in <module>
    from ViewModel.CreatePage import *
ModuleNotFoundError: No module named 'Page'

试过import Page、from ViewModel.Page import *这两种写法,都没解决问题,到底哪里错了?

问题根源&解决办法

1. 循环导入是核心问题

从报错信息能看出来:CreatePage.py在导入Page,而View.py又在导入CreatePage,形成了循环依赖。Python解释器处理这种情况时,会出现模块找不到的错误,哪怕路径写对了也没用。

2. 导入路径也有问题

  • 你在CreatePage.py里写from Page import *,Python会从你运行脚本的目录(也就是CS目录,因为你是跑View.py)去找Page.py,但Page.py在ViewModel文件夹里,自然找不到。
  • 你试的from ViewModel.Page import *之所以没生效,很大概率是被循环导入的问题卡住了。

具体修复步骤

先解决循环导入

检查View.py和CreatePage.py的导入逻辑:

  • 如果View.py里只是在某个函数里用到CreatePage的内容,别把from ViewModel.CreatePage import *放在文件顶部,移到对应的函数内部去。
  • 要是依赖关系太复杂,就拆分代码,把公共逻辑抽出来放到新的模块里,避免互相导入。

再修正导入路径

在CreatePage.py里,用相对导入(因为它和Page.py在同一个文件夹下):

from .Page import *

或者用绝对导入(前提是CS目录在Python的搜索路径里):

from ViewModel.Page import *

注意:如果直接双击运行CreatePage.py,相对导入可能会报错。这时候要么从CS目录下用命令python -m ViewModel.CreatePage运行,要么把CS目录添加到Python的sys.path里。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:13:21