python模块和包:打开的文件夹中存在与模块同名文件,导致包的覆盖ModuleNotFoundError

问题描述:
pip已经安装成功的包和模块(可以直接在cmd里import),但是在vscode里import就ModuleNotFoundError。
python模块和包:打开的文件夹中存在与模块同名文件,导致包的覆盖ModuleNotFoundError_第1张图片
python模块和包:打开的文件夹中存在与模块同名文件,导致包的覆盖ModuleNotFoundError_第2张图片
目前的情况:
1.模块在/python3.7/Lib/sitepackages,是用python set.py install安装的。
2.工作区打开的文件夹在/python3.7(python安装目录下)
3.vscode编译器选择的是/python3.7/python.exe,左下角显示的版本也正确。
4.python环境变量是安装时自动配置的。因为之前存在多版本python共存的情况,所以已经尝试过卸载和重新安装python,现在环境里只有python3.7.1。
5.尝试卸载pip uninstall 不能成功。

解决:
直接在cmd跑代码文件: python+文件名
python模块和包:打开的文件夹中存在与模块同名文件,导致包的覆盖ModuleNotFoundError_第3张图片
不能运行,说明不一定是包的问题,可能是代码文件本身出了问题。但是代码文件是我从官方文档粘下来的示例,不应该有代码版本和包版本不适配的问题。但是可以发现,我的测试代码文件名和我的模块名冲突了,都叫jieba,导致import的时候实例代码jieba.py覆盖了要import的jieba.py。
事实上只要被打开的文件夹中(即同一目录下)有文件与要导入的包或模块同名,就会产生覆盖,导致import的失败。

好吧,我真傻,真的,换个文件名试试,改叫test.py吧
下图展示vscode左侧资源管理器打开的文件夹
修改前:
python模块和包:打开的文件夹中存在与模块同名文件,导致包的覆盖ModuleNotFoundError_第4张图片
修改后:
python模块和包:打开的文件夹中存在与模块同名文件,导致包的覆盖ModuleNotFoundError_第5张图片
竟然成功了
python模块和包:打开的文件夹中存在与模块同名文件,导致包的覆盖ModuleNotFoundError_第6张图片

感谢安靖老师救我!学艺不精,进来挨打5555555

你可能感兴趣的:(python,python,pip)