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

无需Poetry:如何通过pyproject.toml配置Python项目导入路径

不使用包管理器解决Python模块导入问题

针对你的项目目录结构,要让Python识别src/API为包并避免ModuleNotFoundError,可以按以下步骤操作:

1. 把src/API转为合法Python包

在src/API目录下创建一个空的__init__.py文件,Python会自动将包含该文件的目录识别为可导入的包。调整后的目录结构:

main_directory/
├── main.py
├── pyproject.toml
└── src/
    └── API/
        ├── __init__.py
        ├── fileA.py
        └── fileB.py

2. 修改pyproject.toml配置

编辑pyproject.toml,添加setuptools相关配置,让Python能定位到src下的包:

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "your-project"  # 替换为你的项目名称
version = "0.1.0"      # 版本号可按需修改

[tool.setuptools.packages.find]
where = ["src"]        # 指定从src目录查找包
include = ["API*"]     # 匹配API包及其子包

3. 调整导入语句

  • 在fileA.py中,导入fileB.py有两种可选方式:
    • 包内相对导入(推荐):from . import fileB
    • 绝对导入:from API import fileB
  • 在main.py中,导入fileA.py使用绝对导入:from API import fileA

备选方案(无需修改配置文件)

如果不想配置pyproject.toml,可以在main.py开头添加代码,手动将src目录加入Python路径:

import sys
from pathlib import Path

# 获取当前脚本所在目录,拼接src路径并加入Python路径
sys.path.append(str(Path(__file__).parent / "src"))

这种方式不需要额外配置文件,但仅对main.py生效,若要在其他脚本中正常导入,需在对应脚本中添加类似代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:27:29