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

Python模块导入异常:运行downloader.py时找不到directory_handler模块

问题解决:导入'directory_handler'模块失败

核心原因

问题出在src/downloader_mod/shelf.py的导入语句上:
当直接运行shelf.py时,Python的工作目录是downloader_mod,所以from directory_handler import...能找到同目录下的模块;但从上层downloader.py调用时,Python的模块搜索路径以src为基准,此时directory_handler不在搜索路径中,导致导入失败。Python 3已不再支持这种隐式相对导入的写法。

优先推荐的解决方法(规范导入)

方法1:使用绝对导入

修改shelf.py中的导入语句为:

from downloader_mod.directory_handler import DirectoryNameHandler

这种写法基于项目根目录(src)的包结构,无论从哪个层级调用都能正确找到模块。

方法2:使用显式相对导入

修改shelf.py中的导入语句为:

from .directory_handler import DirectoryNameHandler

这种写法表示从当前包(downloader_mod)内导入模块,更符合Python包的设计规范,适合包内部模块间的引用。

备选方案:配置PYTHONPATH

如果不想修改代码,可以将src目录添加到Python的模块搜索路径中,以下是几种配置方式:

  • 命令行临时生效:
    Windows:
    set PYTHONPATH=C:\你的项目路径\archive_shelf_flaskbased\src
    
    Linux/macOS:
    export PYTHONPATH=/你的项目路径/archive_shelf_flaskbased/src
    
  • VS Code 配置:
    1. 在.vscode/settings.json中添加:
      "python.analysis.extraPaths": [
          "${workspaceFolder}/src"
      ]
      
    2. 在.vscode/launch.json的启动配置中添加环境变量:
      "configurations": [
          {
              // 其他配置项
              "env": {
                  "PYTHONPATH": "${workspaceFolder}/src"
              }
          }
      ]
      
    3. 项目根目录创建.env文件,写入:
      PYTHONPATH=${workspaceFolder}/src
      

内容的提问来源于stack exchange,提问作者Meghan M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:14:54