python怎么导入包-Python 包的引入顺序到底是怎样的?

文件结构如下:

$ 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

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

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值