You need to enable JavaScript to run this app. Python运行main.py报相对导入错误,如何导入iota.py调用FunI函数
优惠活动
大模型
产品
解决方案
定价
更多

Python运行main.py报相对导入错误,如何导入iota.py调用FunI函数

解决Python模块导入报错方案

报错原因

你直接运行main.py作为入口脚本时,Python会将其识别为顶层的__main__模块,不存在对应的父包层级关系,因此无法使用..开头的相对导入语法,才会抛出attempted relative import with no known parent package错误。

修复步骤

  1. 路径写法修正:Windows路径直接写单反斜杠会触发转义,需要添加原始字符串前缀r或者用双反斜杠,另外原代码中添加E:\Karya\Python到搜索路径属于多余操作,可以删除。
  2. 导入语法替换:将相对导入改为绝对导入即可,因为你已经将E:\Karya加入模块搜索路径,Python可以直接搜索到该目录下的packages包。
  3. (可选但推荐)在packages文件夹、packages/extra文件夹下各添加一个空的__init__.py文件,作为Python识别包目录的标识,兼容性更好。

修复后代码

import sys
# 用原始字符串前缀避免Windows路径转义问题
sys.path.append(r'E:\Karya')

# 替换为绝对导入
from packages.extra import iota

print(iota.FunI())

更灵活的动态路径写法

如果不想写死本地绝对路径,避免代码迁移到其他设备后无法运行,可以用动态获取项目根路径的方式:

import sys
import os

# 动态获取main.py所在目录的上级目录,也就是E:\Karya
root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(root_dir)

from packages.extra import iota
print(iota.FunI())

内容的提问来源于stack exchange,提问作者Kainen Madison Irtanto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 15:30:01