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

作者:6v6-博客网日期:2026/6/18

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

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

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

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

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

例如,项目结构为:

1MyProject/
2├── utils/
3   └── helper.py
4└── main.py
5

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

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

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

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

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

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

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

1import sys
2import os
3sys.path.append(os.path.abspath("utils"))
4import helper
5

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

常见排查要点

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

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


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


PyCharm 中调用项目内文件夹的 Python 文件方法》 是转载文章,点击查看原文


相关推荐


workbuddy ,node.js 每次会在 项目目录上安装 node_modules,能不能一次安装多次使用,为什么 npm 不把包装在全局
zhangfeng11332026/6/10

workbuddy ,node.js 每次会在 项目目录上安装 \node_modules ,而不是把他放到node.js的安装目录 或者系统的path 中导致 ,类似的功能 都要载入 安装 程序包 很慢 你的问题核心是:npm 默认把包安装在项目本地 node_modules,每次新建项目都要重新 npm install,耗时且冗余。这是 npm 的设计哲学问题,我来解释清楚并提供解决方案。 为什么 npm 不把包装在全局? npm 的设计原则是 依赖隔离: 方式优点缺点项目本地安装(


数据同步的几种姿势
小跟班_mya2026/6/3

先搞清楚一件事:为什么要有 ES 数据同步? 想象一下,你开了一家图书馆: MySQL 是图书管理员,负责把书一本本摆好、登记在册(增删改查、事务保证)Elasticsearch 是图书检索系统,用户输入"三体",0.01 秒就能告诉你第几排第几架(全文检索、聚合分析) 问题来了:管理员刚上架了一本新书,检索系统怎么立刻知道这本书的存在?这就是数据同步要解决的事。 方案一:同步双写——"一边记账一边贴标签" 场景 你开了个电商网站,用户下单后,订单既要存到 MySQL(方便财务对账


Vibe Coding 全栈实战:章鱼哥解题 07|功能跑通后的架构收敛
小小小小小鹿2026/5/28

Vibe Coding 全栈实战:章鱼哥解题 07|功能跑通后的架构收敛 上一期做完对话持久化以后,章鱼哥已经不只是一个“能回答问题”的接口了。它有了登录态,有了当前对话,有了 LangGraph thread,也能在刷新页面后恢复最近的消息。 但功能跑通以后,我回头看了一下后端模块依赖,发现了两个不太舒服的地方。 一个是 agent 依赖了 chat: agent.nodes → chat.question_classifier 另一个是 infra.llm 依赖了 rag.context_


开发了一个管理本地开发环境的软件
神奇的程序员2026/5/5

前言 前阵子换了新电脑,我在整理本地开发环境时,看到一堆需要重新装的,顿时感觉好麻烦。想着都过去这么久了,应该有工具可以做到统一管理,实现快速安装、更新、切换版本吧。 经过一番查找后,找到了mise这个东西,只需要简单的一句命令就能安装java、node、redis、go等工具,而且还支持对这些工具做统一管理(更新、删除),支持三大主流平台(macOS/Windows/Linux) 命令行始终不方便,于是我萌生了一个做GUI的想法,花了亿点时间用Flutter把它开发出来了,欢迎各位有需要的开发


Hello 算法:“走一步看一步”的智慧
灵感__idea2026/4/26

每个系列一本前端好书,帮你轻松学重点。 本系列来自上海交通大学硕士,华为高级算法工程师 靳宇栋 的 《Hello,算法》 “走一步看一步”,是我们面对不断变化的世界所采取的应对策略。 多数时候,我们无法对未来做出准确预测,只能根据上一件事的结果对下一件事做决策。介绍“分治”的时候,我们已经接触过这种策略。本篇主角依然如此,但又有所不同。 先看个例子。 爬楼梯 给一个 n 阶楼梯,每步可以上 1 阶或者 2 阶,问有多少种方案可以爬到楼顶? 假设 n 是3,那么方案共 3 种。如下图所示。 这


Linux 驱动开发入门:从最简单的 hello 驱动到硬件交互
4. 嵌入式铲屎官2026/4/17

Linux 驱动开发入门:从最简单的 hello 驱动到硬件交互 🎉 写给未来的自己和领导:本文是 Linux 驱动开发的 入门级保姆教程,从零开始搭建驱动框架,逐行解释代码,记录每一个踩过的坑。无论你是刚接触内核编程,还是想快速上手 GPIO 中断,都能在这里找到清晰的思路和可复现的步骤。 📚 目录 引言:驱动是什么?驱动的基本框架 —— 一切皆文件实战:第一个 hello 驱动 3.1 完整的驱动源码(带详细注释)3.2 编译驱动 —— Makefile 解析3.3 上机测试 ——


深入剖析 Redis 经典面试题
Thomas.Sir2026/4/9

1、什么是Redis?它主要用来什么的? Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Redis支持事务、持久化、


260331-OpenWebUI统计所有Chat的对话字符个数
GuokLiu2026/4/1

1 OWUI启动脚本 # Open-WebUI Settings export DATA_DIR='data0331' export ENABLE_SIGNUP=True export DEFAULT_USER_ROLE='admin' export DEFAULT_GROUP_ID='xai' export OFFLINE_MODE=false export HF_HUB_OFFLINE=1 # OpenAI API 配置 export ENABLE_OLLAMA_API=false ex


[LangChain智能体本质论]中间件是如何参与Agent、Model和Tool三者交互的?
JaydenAI2026/3/23

LangChain的中间件(Middleware)是围绕Agent执行流程构建的“可插拔钩子系统”。它允许开发者在不修改核心逻辑的情况下,在执行的关键节点(如输入处理、模型调用前后、输出解析等)对数据流进行拦截、修改或验证。中间件类型以AgentMiddleware为基类。 1. AgentMiddleware AgentMiddleware是一个泛型类型,两个泛型参数分别代表状态和静态上下文的类型,我们可以利用state_schema字段得到状态类型。它的name属性返回中间件的名称,默认返回


haproxy案例项目(haproxy+dns+nginx+nfs+keepalived)
爱莉希雅&&&2026/3/15

HAProxy+Nginx+NFS+DNS 部署笔记 一、环境规划 主机名IP 地址安装软件角色说明haproxy192.168.72.100/24haproxy负载均衡器nginx1192.168.72.10/24nginx、nfs-utilsWeb 节点 1(挂载 NFS 共享)nginx2192.168.72.20/24nginx、nfs-utilsWeb 节点 2(挂载 NFS 共享)nfs192.168.72.30/24nfs-utilsNFS 文件共享服务器dns192.168.

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 聚合阅读