文件结构如下:$tree..├──main.py├──os.py└──platform.pymain.py:importplatformimportosimportsysprint('Nowinmain,Start`entercodehere`toExecfollowing')print(os.getcwd())print(sys.modules['platform'].__file__)print(platform.processor())os.py:print('Nowinos.pymodule')platform.py:print('Nowinplatform.pymodule')当我运行pythonmain.py,结果如下:$pythonmain.pyNowinplatform.pymoduleNowinmain,StarttoExecfollowing/Users/michael/Code/00-Temp/pkg_import/Users/michael/Code/00-Temp/pkg_import/platform.pyTraceback(mostrecentcalllast):File"main.py",line9,inprint(platform.processor())AttributeError:module'platform'hasnoattribute'processor'问题1:os和platform都是内置模块,当importos,默认走到了内置模块,但是importplatform,却获取了同级目录下的plarform,为何出现这个现象呢?问题2:同样的脚本,我在Pycharm中直接运行main.py,却报这个错误:/Users/michael/anaconda3/bin/python/Users/michael/Code/00-Temp/pkg_import/main.pyNowinos.pymoduleFatalPythonerror:initsite:FailedtoimportthesitemoduleTraceback(mostrecentcalllast):File"/Users/michael/anaconda3/lib/python3.7/site.py",line570,inmain()File"/Users/michael/anaconda3/lib/python3.7/site.py",line547,inmainknown_paths=removeduppaths()File"/Users/michael/anaconda3/lib/python3.7/site.py",line126,inremoveduppathsdir,dircase=makepath(dir)File"/Users/michael/anaconda3/lib/python3.7/site.py",line91,inmakepathdir=os.path.join(*paths)AttributeError:module'os'hasnoattribute'path'Processfinishedwithexitcode1
2 回答
弑天下
TA贡献1818条经验 获得超8个赞
如果是python环境那么,导包会先从同级目录去找你导入的模块。如果找不到,回去python内置的第三方包去查找模块。完整的查找方式为:同级方法<--同级模块<--同级包<--第三方包
添加回答
举报
0/150
提交
取消