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

Python 3.x相对路径导入类报错:如何在指定项目结构导入Foo类?

解决example1.py中导入Foo类的问题

方法一:将examples转为包并以模块方式运行

  • 在src/examples目录下创建空的__init__.py文件,让examples成为Python包。
  • 保持example1.py中的导入语句不变:from ..models.Foo import Foo。
  • 从项目根目录(question-project)执行命令运行脚本:
    python -m src.examples.example1
    
    这种方式会让Python识别整个src的包层级,相对导入就能正常生效。

方法二:修改模块搜索路径实现绝对导入

直接在example1.py开头添加代码,把src目录加入Python的模块搜索路径,之后用绝对导入:

import sys
from pathlib import Path

# 获取src目录的绝对路径
src_dir = Path(__file__).parent.parent
sys.path.append(str(src_dir))

# 现在可以直接绝对导入
from models.Foo import Foo

这种方法不需要修改目录结构,适合快速调试脚本。

方法三:将项目安装为可编辑包(推荐开发场景)

  1. 在项目根目录(question-project)创建setup.py文件,内容如下:
from setuptools import setup, find_packages

setup(
    name="question-project",
    version="0.1.0",
    packages=find_packages(where="src"),
    package_dir={"": "src"},
)
  1. 在根目录执行命令安装可编辑包:
pip install -e .
  1. 之后在example1.py中直接使用绝对导入即可:
from models.Foo import Foo

这种方式适合长期开发,后续任何位置都能正常导入项目内的模块。


内容的提问来源于stack exchange,提问作者Martin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 19:13:18