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

VS Code中跨脚本导入函数失败:找不到sql.sql_import模块求助

问题描述

我在VS Code中克隆了一个内部代码仓库,仓库结构如下:

AnonymizedEmbeddings
├─ Makefile
├─ README.md
├─ src
│  ├─ main
│  │  ├─ __init__.py
│  │  ├─ import_data.py
│  └─ sql
│     ├─ __init__.py  
│     └─ sql_import.py

通过容器启动Jupyter Notebook时,能正常执行from sql.sql_import import Z导入函数Z,但在VS Code里直接运行相同导入代码,却一直报错"No module named sql.sql_import"和"sql is not a package"。试过把脚本移到同一目录,问题还是没解决。

解决方案

方法1:手动添加src目录到Python路径(推荐新手)

这是最直接的做法,能快速对齐容器环境的路径设置:

  • 打开你要运行的脚本(比如src/main/import_data.py)
  • 在脚本最开头加入以下代码,把src目录的绝对路径加入Python的模块搜索路径:
import sys
import os
# 自动获取src目录的路径,不管脚本放哪都能生效
src_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
if src_dir not in sys.path:
    sys.path.append(src_dir)

加完之后再执行from sql.sql_import import Z就能正常导入了。

方法2:修改VS Code的运行工作目录

  • 打开VS Code终端,切换到AnonymizedEmbeddings/src目录(根据你本地的实际路径调整命令):
cd AnonymizedEmbeddings/src
  • 然后在这个目录下运行你的脚本,比如:
python main/import_data.py
  • 或者设置VS Code的运行配置永久生效:
    1. 点击左侧「运行和调试」图标,打开launch.json文件
    2. 在配置里添加"cwd": "${workspaceFolder}/src",示例配置如下:
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Python: 当前文件",
                "type": "python",
                "request": "launch",
                "program": "${file}",
                "cwd": "${workspaceFolder}/src"
            }
        ]
    }
    

方法3:把项目安装为可编辑包(适合长期开发)

如果需要长期维护这个项目,可以把它注册到Python的包管理系统里:

  • 在VS Code终端进入AnonymizedEmbeddings根目录
  • 执行以下命令:
pip install -e .

这样Python会自动识别项目的包结构,之后不管在哪运行脚本,都能直接用from sql.sql_import import Z导入。

内容的提问来源于stack exchange,提问作者Mads-Emil Hvid Rasmussen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:30:21