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

为何Python本地模块可在REPL导入,但脚本运行报ModuleNotFoundError

解决方法

模块导入报错修复

你在REPL中可以正常导入BarMod,说明模块本身安装没有问题,运行fizz.py抛出ModuleNotFoundError的核心原因是运行脚本的Python解释器与你安装BarMod的虚拟环境不匹配,按以下步骤排查修复:

  • 保持虚拟环境处于激活状态,在终端执行:
    • Windows系统:where python
    • macOS/Linux系统:which python
      确认输出的Python路径为FizzApp目录下虚拟环境env内的可执行文件路径。
  • 不要使用IDE默认的运行按钮执行fizz.py,在当前激活虚拟环境的终端中,cd到FizzApp目录,执行python fizz.py即可正常运行。

关于模块方法导出的优化:你在__init__.py中添加from .BarMod import foofunc的操作是正确的,调整后你可以直接在fizz.py中使用更简洁的导入写法:

import BarMod
print(BarMod.foofunc(1))
# 也可以直接导入方法
# from BarMod import foofunc
# print(foofunc(1))

pip弃用规则适配

按以下操作即可适配新版pip规则,避免后续功能失效:

  1. 升级当前虚拟环境的pip到最新版本:
python -m pip install --upgrade pip
  1. 安装wheel包,避免legacy安装提示:
pip install wheel
  1. 21.3版本以下的pip安装本地包时添加--use-feature=in-tree-build参数即可适配新的构建规则:
pip install --use-feature=in-tree-build ./BarMod

pip 21.3及以上版本已经将in-tree-build设为默认行为,无需额外添加参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:27:03