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

如何将Python项目中session_10的file1.py导入到session_9的main.py中

Python跨文件夹模块导入解决方案

目录结构

python/
├─ session_9/
│  └─ main.py
└─ session_10/
   └─ file1.py

你尝试的代码中的问题

  • 导入语句错误:导入模块时不能加.py后缀,正确的模块名是session_10.file1,而非session_10.file1.py。
  • sys.path.insert用法错误:该函数第一个参数是插入位置(比如0表示优先搜索),第二个才是路径;另外Windows路径中的反斜杠要转义为\\或者用原始字符串(r'路径'),避免转义字符解析问题。

可行的解决方法

方法一:动态添加父目录到模块搜索路径

在session_9/main.py中添加以下代码:

import sys
from pathlib import Path

# 获取当前脚本所在目录的父目录(即python文件夹路径)
parent_path = Path(__file__).parent.parent
sys.path.append(str(parent_path))

# 正常导入目标函数
from session_10.file1 import sampfunc as sp

方法二:通过IDE标记源根目录

如果你使用PyCharm、VS Code等IDE,右键点击python文件夹,选择Mark Directory as -> Sources Root,之后直接在main.py中写导入语句即可:

from session_10.file1 import sampfunc as sp

方法三:使用Python包结构(需创建__init__.py)

在python、session_9、session_10三个文件夹下各创建一个空的__init__.py文件,将整个结构转为Python包。

  • 绝对导入(需确保python目录在sys.path中,或通过IDE标记源根):
    from session_10.file1 import sampfunc as sp
    
  • 相对导入(仅当main.py作为包的一部分被导入时可用,不能直接运行main.py):
    from ..session_10.file1 import sampfunc as sp
    

内容的提问来源于stack exchange,提问作者Joshua Ehd Silvio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 22:42:16