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/

相关推荐
程序员大阳1 天前
副队长HTML+CSS博客网站实战 (1)–项目介绍与整体规划
css·html·实战·教程·博客网站·规划
xcLeigh2 天前
Unity基础:Instantiate实例化——在运行时动态创建游戏物体
游戏·unity·游戏引擎·教程·instantiate
po_potato2 天前
Hermes Agent 安装与 MCP 配置教程
教程·开发工具·mcp·hermes agent
goehou2 天前
MCP 传输方式实战:stdio、Streamable HTTP、WebSocket 该选哪个
python·llm·agent·教程·mcp
goehou3 天前
MCP 查数实战:让 LLM 安全地查数据库(只读账号、SQL 校验、参数漂移)
数据库·ai·llm·教程·mcp·function calling
代码山河3 天前
第一个Java程序:Hello World从零编写与运行
java·学习·架构·教程·面向对象·项目
代码山河5 天前
Java语言特点:跨平台、面向对象、安全性详解
java·学习·架构·教程·面向对象·项目
goehou6 天前
AI 应用上线实战:从本地脚本到 Docker 容器化(密钥、健康检查、镜像瘦身)
docker·ai·llm·部署·教程·容器化
代码山河6 天前
JDK、JRE、JVM的区别:一文讲清楚Java运行环境
java·学习·架构·教程·面向对象·项目
goehou7 天前
LLM 结构化输出全解:从 Prompt 约束到 Schema 硬保证,三层实现怎么选
ai·llm·json·agent·教程·结构化输出