Python CLI本地运行正常,setup.py安装后执行报ModuleNotFoundError
问题原因
该报错是导入规则不匹配导致的:
- 直接在
CVRCLI_folder目录执行python3 main.py时,当前工作目录会被自动加入Python的模块搜索路径,所以可以直接找到同目录下的prompt.py和utils.py - 完成安装后运行CLI入口时,你的代码是作为第三方包运行的,Python不会将包内部路径加入搜索路径,直接写
import prompt会全局搜索名为prompt的顶层包,自然找不到。
同时你的main.py存在遗漏导入platform模块的问题,执行时也会触发报错。
修复步骤
1. 修改main.py的导入逻辑
根据你的使用需求选择对应方案:
- 如果仅需要安装后CLI可用,直接将开头的导入改为包内相对导入即可:
import click import platform from . import prompt from . import utils
- 如果需要同时保留直接执行
python3 main.py的能力,使用兼容写法:
import sys import os import click import platform if __name__ == "__main__": sys.path.append(os.path.dirname(os.path.abspath(__file__))) import prompt import utils else: from . import prompt from . import utils
2. 重新安装包
先卸载旧版本再重新安装生效:
pip uninstall -y myCLI pip install .
验证
安装完成后执行myCLI setupdb或者其他命令,不会再触发ModuleNotFoundError报错。
内容的提问来源于stack exchange,提问作者user15256253
相关产品推荐
相关产品推荐

