使用setup.py安装pip包后出现ModuleNotFoundError问题求助
解决
spoti命令抛出的ModuleNotFoundError问题 这个错误的根源在于你的clifi.py文件里使用了错误的模块导入方式。当包被pip安装后,Python会将spotidnldr识别为一个顶级包,而你在clifi.py里直接用from env_setup import *这种写法时,Python会在全局模块路径里查找env_setup,而不是在spotidnldr包内部定位模块,所以才会抛出找不到模块的错误。
修复方案(二选一即可)
方案1:使用相对导入
修改clifi.py里所有同目录模块的导入语句,在模块名前加上.,表示从当前包目录导入:
# clifi.py 里的导入部分 from .env_setup import * from .converter import * from .cover_download import * from .downloader import * from .env_checker import * from .spot import * from .tag_embedder import * from .youtube_search import *
方案2:使用完整包路径导入
直接使用包名+模块名的方式导入,明确指定模块属于spotidnldr包:
# clifi.py 里的导入部分 from spotidnldr.env_setup import * from spotidnldr.converter import * from spotidnldr.cover_download import * from spotidnldr.downloader import * from spotidnldr.env_checker import * from spotidnldr.spot import * from spotidnldr.tag_embedder import * from spotidnldr.youtube_search import *
后续验证步骤
修改完导入语句后,需要重新升级安装你的包,确保修改生效:
pip install --upgrade .
之后再运行spoti命令,应该就能正常执行了。
内容的提问来源于stack exchange,提问作者Rohit Patil




