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

如何在Python脚本中调用其他脚本?同目录导入模块报错求助

解决同一目录下Python脚本导入的ModuleNotFoundError问题

嘿,我遇到过一模一样的问题!同一目录下导入脚本却报错找不到模块,通常是路径或者命名的小问题,咱们一步步来排查解决:

先确认基础细节

  • 先仔细检查:case.py的文件名拼写完全正确吗?比如有没有写成Case.py?在Linux/macOS这类区分大小写的系统里,Python会严格区分文件名大小写,哪怕只差一个字母都导不进来;Windows虽然不区分,但统一命名习惯能避免很多坑。
  • 看看脚本所在目录里有没有和case.py同名的其他文件(比如case.txt)或者文件夹,这会导致Python识别混乱。

方法1:确保运行时的工作目录正确

很多时候报错是因为你运行final.py的工作目录不是脚本所在的目录。比如你在上级目录执行python src/final.py,Python会默认在当前工作目录(上级目录)里找case.py,自然找不到。解决办法有两个:

  1. 打开终端,先cd到两个脚本所在的目录,再执行python final.py;
  2. 如果不方便切换目录,可以在final.py的最开头添加这段代码,把脚本所在目录手动加入Python的搜索路径:
import sys
import os
# 将当前脚本所在目录添加到Python的模块搜索路径
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

# 之后再导入模块
import case as f_case
qry = ''
qry += f_case.generate_case('R162')
print(qry)

方法2:添加空的__init__.py文件(规范做法)

虽然Python 3.3及以上版本支持无__init__.py的命名空间包,但有些IDE或者旧环境还是需要这个文件来识别目录为Python包。你只需要在两个脚本所在的目录下创建一个空的__init__.py文件就行,不需要写任何内容,这样Python就能正确识别本地模块了。

方法3:排查第三方库命名冲突

有没有可能你的Python环境里安装了一个名为case的第三方库?如果有的话,Python会优先导入这个第三方库,而不是你的本地脚本。你可以:

  1. 运行pip list看看有没有名为case的包;
  2. 如果有且不需要的话,执行pip uninstall case卸载它;
  3. 或者直接把你的case.py改个名字(比如my_case.py),然后在final.py里改成import my_case as f_case。

快速验证路径问题

你可以在final.py里先打印Python的模块搜索路径,看看脚本所在目录是不是在列表里:

import sys
print(sys.path)

如果脚本所在目录不在输出的列表中,那肯定是路径问题,用方法1的代码添加路径就好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 20:22:54