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

VSCode中如何强制Python导入顺序:让TensorFlow先于Keras导入

解决VSCode中Python导入自动排序时维持特定顺序的问题

要在保持VSCode默认按字母排序导入的同时,强制维持你需要的导入顺序,核心是利用导入排序工具(多数场景下是isort)的分组/强制排序配置,以下是具体操作:

一、配置isort(推荐方案)

VSCode的Python导入排序默认依赖isort工具,通过自定义配置可以指定特定导入的优先级:

  1. 在项目根目录创建pyproject.toml文件(若已有则直接编辑),添加以下配置:
[tool.isort]
# 保留默认的导入分组逻辑
sections = ["FUTURE", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"]
# 指定需要强制排序的导入顺序,优先级从左到右
forced_order = ["os", "tensorflow.compat.v1", "keras"]
  1. 按块组织你的导入代码,用空行分隔不同优先级的组:
# 第一组:CUDA环境配置(isort会保留此组的最前位置)
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

# 第二组:TensorFlow导入(固定在os组之后)
import tensorflow.compat.v1 as tf

# 第三组:Keras导入(固定在TensorFlow组之后)
import keras
import keras.backend as K

isort会保持这三个组的顺序不变,同时每个组内部的导入仍会按字母排序(比如Keras组内keras和keras.backend会自动按字母排列,符合你的需求)。

二、VSCode配套设置检查

确保VSCode保存时使用自定义的isort配置排序:
打开VSCode设置(快捷键Cmd+,/Ctrl+,),在settings.json中添加:

"python.sortImports.args": [
    "--settings-path=${workspaceFolder}/pyproject.toml"
],
"editor.codeActionsOnSave": {
    "source.organizeImports": true
}

三、关键说明

  • 由于os.environ的设置不是纯导入语句,isort会将其和import os视为一个整体块,不会拆分或移动这个块的位置。
  • 若你使用的是其他格式化工具(如autopep8),可在需要固定的导入行后添加# isort:skip注释来跳过排序,但isort的分组配置方案更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:01:14