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

isort工具第一方导入识别异常:根目录pyproject.toml配置无效求助

解决isort误将同目录模块识别为第三方导入的问题

项目目录结构

Project_Name
|-project_name
|--__init__.py
|--file1.py
|--file2.py
|--main.py
|-tests
|-docs
|-pyproject.toml

问题描述

我的isort配置文件放在根目录Project_Name/pyproject.toml,所有Python文件都在子目录Project_Name/project_name/下。在main.py里用以下导入语句时:

from file1 import xyz
from file2 import abc

isort会把file1、file2归类为第三方导入,而非同一项目的第一方导入。把pyproject.toml移到project_name目录下就能正常识别,但我想保留配置文件在根目录,之前试过在配置里加known_first_party = ['project_name']没用,请问该怎么处理?

当前pyproject.toml内容:

[tool.isort]
line_length = 120
use_parentheses = true
multi_line_output = 3
ensure_newline_before_comments = true
include_trailing_comma = true
split_on_trailing_comma = true
float_to_top = true
indented_import_headings = false
known_future_library = ['__future__', 'config']
extra_standard_library = []
known_third_party = []
known_mylib = ['my_utils_library']
known_first_party = []
known_local_folder = []

解决方案

有两种可行的解决方式:

方式1:改用绝对导入

把main.py里的导入语句改成从项目包名开始的绝对导入:

from project_name.file1 import xyz
from project_name.file2 import abc

同时在pyproject.toml里确保known_first_party配置正确:

known_first_party = ['project_name']

这样isort就能正确识别这些导入属于第一方。

方式2:配置known_local_folder参数

如果不想修改现有导入语句,直接在pyproject.toml里把project_name目录加入known_local_folder:

known_local_folder = ['project_name']

这个参数会让isort把指定目录下的模块视为本地(第一方)导入,适配你当前的相对导入写法。

额外注意:确保项目根目录Project_Name已经加入Python路径(sys.path),可以通过pip install -e .安装可编辑模式的项目,或者手动添加路径,否则isort可能无法正确解析模块归属。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:16:23