PyCharm 中调用项目内文件夹的 Python 文件方法

PyCharm 中调用项目内文件夹的 Python 文件方法

在 PyCharm 中调用另一个文件夹中的 .py 文件,本质上是解决 Python 的模块导入路径问题。默认情况下,Python 只会搜索当前目录和系统库,直接导入子文件夹里的模块会报 ModuleNotFoundError。以下提供三种最有效的解决方案。

方法一:将文件夹标记为「源根」(最推荐)

这是 PyCharm 独有的便捷功能,无需修改代码即可让 IDE 识别路径。

  1. 在项目侧边栏中,右键点击目标文件夹(比如 utils)。
  2. 选择 Mark Directory as → Sources Root
  3. 文件夹图标变为蓝色后,就能像导入系统模块一样直接导入其中的文件。

例如,项目结构为:

复制代码
MyProject/
├── utils/
│   └── helper.py
└── main.py

main.py 中只需写 import helper 即可。运行时 PyCharm 会自动将该目录加入 PYTHONPATH,告别路径错误。该方法完全不影响代码在其它环境下的可移植性。

方法二:使用 Python 包和绝对导入

如果想脱离 PyCharm 也能正常运行,建议将文件夹做成标准的 Python 包。

  1. 在目标文件夹内新建一个 __init__.py 文件(内容可为空),使其成为包。
  2. 从任意脚本中使用包名导入,如 from utils.helper import 函数名

当运行入口脚本(例如项目根目录下的 main.py)时,项目根目录会自动进入搜索路径,从而找到所有子包。此方法代码清晰,最为通用。

方法三:临时动态添加路径

对于临时测试,可以直接在脚本里添加路径:

python 复制代码
import sys
import os
sys.path.append(os.path.abspath("utils"))
import helper

这种方法会污染全局路径且不美观,仅推荐在一次性脚本或调试时使用。

常见排查要点

  • 确认源根:检查文件夹是否已标为蓝色,且运行配置中的"Add source roots to PYTHONPATH"已勾选。
  • 确认工作目录 :在 Run → Edit Configurations 中确保工作目录为项目根目录。
  • 包结构 :若使用 __init__.py,务必检查文件名及层级正确。

采用方法一或方法二,即可在 PyCharm 中自由调用项目内任意文件夹的 Python 文件,让模块组织更灵活、代码复用更高效。


发布地址https://6v6.ren/

相关推荐
SomeB1oody4 小时前
【RustyML入门】2.13. 孤立森林
开发语言·后端·机器学习·rust·教程
SomeB1oody5 小时前
【RustyML入门】3.8. 正则化与归一化层
开发语言·后端·机器学习·rust·教程
SomeB1oody7 小时前
【RustyML入门】3.7. 循环层
开发语言·后端·机器学习·rust·教程
xcLeigh2 天前
Unity基础:Start与Update方法——Unity脚本生命周期初探
java·unity·游戏引擎·教程
xcLeigh3 天前
Go入门:短变量声明的陷阱与最佳实践
java·redis·golang·教程·变量
Jay-r5 天前
极简博客搭建(精简版):textlog + GitHub Pages
python·github·教程·集成学习·博客网站·技术教程·自我成长
qq83443105 天前
一款纯前端的excel控件,XuY_Sheet 电子表格组件教程
前端·excel·教程·luckysheet·xuy_sheet控件·前端表格控件
SomeB1oody6 天前
【RustyML入门】2.9. MeanShift
开发语言·后端·机器学习·rust·教程
SomeB1oody6 天前
【RustyML入门】2.10. 主成分分析
开发语言·后端·机器学习·rust·教程
xcLeigh7 天前
Unity基础:C#脚本的创建与挂载——让你的游戏物体活起来
游戏·unity·c#·教程