文件结构如下:
$ tree .
.
├── main.py
├── os.py
└── platform.py
main.py:
import platform
import os
import sys
print('Now in main, Start`enter code here` to Exec following')
print(os.getcwd())
print(sys.modules['platform'].__file__)
print(platform.processor())
os.py:
print('Now in os.py module')
platform.py:
print('Now in platform.py module')
当我运行 python main.py,结果如下:
$ python main.py
Now in platform.py module
Now in main, Start to Exec following
/Users/michael/Code/00-Temp/pkg_import
/Users/michael/Code/00-Temp/pkg_import/platform.py
Traceback (most recent call last):
File "main.py", line 9, in <module>
print(platform.processor())
AttributeError: module 'platform' has no attribute 'processor'
问题1:os 和 platform 都是内置模块, 当 import os,默认走到了内置模块,但是 import platform, 却获取了同级目录下的 plarform,为何出现这个现象呢?
问题2:同样的脚本,我在 Pycharm 中直接运行 main.py ,却报这个错误:
/Users/michael/anaconda3/bin/python /Users/michael/Code/00-Temp/pkg_import/main.py
Now in os.py module
Fatal Python error: initsite: Failed to import the site module
Traceback (most recent call last):
File "/Users/michael/anaconda3/lib/python3.7/site.py", line 570, in <module>
main()
File "/Users/michael/anaconda3/lib/python3.7/site.py", line 547, in main
known_paths = removeduppaths()
File "/Users/michael/anaconda3/lib/python3.7/site.py", line 126, in removeduppaths
dir, dircase = makepath(dir)
File "/Users/michael/anaconda3/lib/python3.7/site.py", line 91, in makepath
dir = os.path.join(*paths)
AttributeError: module 'os' has no attribute 'path'
Process finished with exit code 1
添加回答
举报
0/150
提交
取消