PyCharm 中调用项目内文件夹的 Python 文件方法
在 PyCharm 中调用另一个文件夹中的 .py 文件,本质上是解决 Python 的模块导入路径问题。默认情况下,Python 只会搜索当前目录和系统库,直接导入子文件夹里的模块会报 ModuleNotFoundError。以下提供三种最有效的解决方案。
方法一:将文件夹标记为「源根」(最推荐)
这是 PyCharm 独有的便捷功能,无需修改代码即可让 IDE 识别路径。
- 在项目侧边栏中,右键点击目标文件夹(比如
utils)。 - 选择 Mark Directory as → Sources Root。
- 文件夹图标变为蓝色后,就能像导入系统模块一样直接导入其中的文件。
例如,项目结构为:
MyProject/
├── utils/
│ └── helper.py
└── main.py
在 main.py 中只需写 import helper 即可。运行时 PyCharm 会自动将该目录加入 PYTHONPATH,告别路径错误。该方法完全不影响代码在其它环境下的可移植性。
方法二:使用 Python 包和绝对导入
如果想脱离 PyCharm 也能正常运行,建议将文件夹做成标准的 Python 包。
- 在目标文件夹内新建一个
__init__.py文件(内容可为空),使其成为包。 - 从任意脚本中使用包名导入,如
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/