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

Python 3同目录导入模块遇ModuleNotFoundError问题求助

解决Python 3.6同目录模块导入的ModuleNotFoundError问题

嘿,我之前在Windows 10上用Python 3.6的时候也踩过一模一样的坑!这种报错本质是直接运行脚本时,Python对模块路径的处理逻辑导致的,咱们一步步来搞定它:

先搞懂为啥会报错

当你直接运行char_user.py时,Python会把这个脚本标记为__main__模块,而不是把它所在的目录当作一个可导入的包。这时候如果用相对导入(比如from .char import Char)肯定会炸——因为__main__不是一个包;哪怕用绝对导入,要是运行时的工作目录不对,也会出问题。

具体解决步骤

1. 用对导入语句

在char_user.py里,直接用不带前置点的绝对导入:

from char import Char

别用带点的相对导入,那种写法只适合在包内部被其他模块导入时用,直接运行脚本时绝对会触发你遇到的那个错误。

2. 确保运行路径正确

打开CMD,先切换到你的两个.py文件所在的文件夹,比如:

cd C:\Users\YourName\Projects\YourFolder

然后再运行脚本:

python char_user.py

如果用IDE(比如PyCharm),记得把IDE的运行工作目录设置成这个项目文件夹,别让它跑到其他路径去。

3. 排查文件名冲突

检查下你的char.py有没有和Python标准库或者第三方模块重名——虽然Python标准库没有单独的char.py,但万一有其他第三方包叫这个名字,也会搞乱导入逻辑。要是真有冲突,把文件名改成更独特的(比如custom_char.py),然后更新导入语句就行。

4. 关于__init__.py的小说明

在Python 3.3及以后,__init__.py已经不是创建包的必须文件了(这是命名空间包的特性),所以你有没有这个文件其实不影响这次的导入问题,不用在这上面浪费时间。

额外验证小技巧

  • 先单独运行char.py,确保它没有语法错误,比如Char类的定义是正常的:
    class Char:
        def __init__(self, name):
            self.name = name
        # 其他类方法...
    
  • 确认两个文件确实在同一个目录下,别不小心把其中一个放到子文件夹里了。

按照这些步骤来,应该就能顺利导入Char类啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:20:05