浅谈Python2、Python3相对路径、绝对路径导入方法
os.path.dirname() 获取父目录
os.path.basename() #获取文件名或者文件夹名
python2缺省为相对路径导入,python3缺省为绝对路径导入
python2绝对路径导入
from __future__ import absolute_import
python2缺省会搜索上一级目录、上上级目录
解决方案:
import platform pver=platform.python_version() pversion= int(pver.split('.')[0]) try: if pversion==2: print(1) from .A import aa else: print(2) from A import aa except: print(3) from A import aa
异常处理版:
try: from .A import aa print(12) except: print(22) from A import aa
其他重点
1、包之所以为包,取决于是否有__init__.py文件
2、相对路径导入仅用于包内,同一个顶级包内
3、当前目录:
play$ python main.py
play为当前目录
play$ python test/main.py
play/test为当前目录
play$ python -m test.main
play为当前目录
出现SystemError: Parent module '' not loaded, cannot perform relative import错误一个原因为包内使用相对路径,改用python -m可解决。
相关推荐
Bonrui编程路 2020-07-18
深井兮兮 2020-07-18
Alisa0 2020-06-14
DBATips 2020-06-07
atb 2020-04-18
taoqidejingling 2020-03-05
小惠 2020-03-03
sunln00 2020-02-20
林大夏 2020-02-16
aihenaichadeyun 2019-12-20
csdnyasin 2019-12-21
福叔 2019-12-09
gaozhlzh 2013-09-11
心动 2019-11-17
lyccsu 2015-05-15
lhxxhl 2019-06-10
snowknow 2019-07-01
lovexiaoqiqi 2019-05-20
Dongxiem 2015-09-08