Pip提示已安装inputapi,但Python调用时提示无menu属性
下面是导致AttributeError: module 'inputapi' has no attribute 'menu'的常见原因及对应解决方法:
1. 包的__init__.py未导出menu函数
你的menu函数定义在src/inputapi/inputapi.py中,但如果inputapi目录下的__init__.py没有将该函数暴露出来,外部导入包时就无法直接通过inputapi.menu访问。
解决方法:
编辑src/inputapi/__init__.py,添加如下代码(根据需要选择):
# 仅导出menu函数 from .inputapi import menu # 或者导出inputapi.py中的所有函数(如果需要) from .inputapi import *
2. 升级时未正确构建/安装新版本
你修改了源码,但可能没有重新构建包,或者安装时仍使用了旧的构建文件,导致系统里还是旧版本的包。
解决步骤:
- 彻底卸载已安装的inputapi:
pip uninstall -y inputapi - 删除旧的构建产物:
rm -rf dist/ - 安装构建工具并重新构建包:
pip install build python -m build - 安装新构建的包(注意替换为实际生成的版本文件名):
pip install dist/inputapi-1.0.3-py3-none-any.whl
建议修改
pyproject.toml中的版本号(比如从1.0.2升级到1.0.3),避免新旧版本混淆。
3. Python模块缓存残留
Python会缓存已导入的模块文件,即使重新安装了包,缓存的旧模块可能仍在生效。
解决方法:
- 找到Python的site-packages目录中inputapi的安装路径:
从输出中找到类似python -c "import sys; print(sys.path)".../site-packages/inputapi的路径,手动删除该文件夹。 - 重启VSCode或Python解释器,清除缓存后再运行代码。
4. VSCode智能感知未同步
VSCode的Python插件可能未及时更新包的索引,导致编辑器提示找不到函数(但运行报错的话,这个不是主要原因)。
解决方法:
- 打开命令面板(Ctrl+Shift+P),执行
Python: Refresh IntelliSense - 或执行
Reload Window重新加载VSCode窗口
内容的提问来源于stack exchange,提问作者MikeFromIT
相关产品推荐
相关产品推荐

