Python2、Python3相对路径、绝对路径导入

来源:互联网 发布:乌龙山伯爵 知乎 编辑:程序博客网 时间:2024/06/07 00:14


os.path.dirname()  获取父目录
os.path.basename() #获取文件名或者文件夹名


python2缺省为相对路径导入,python3缺省为绝对路径导入


python2绝对路径导入
from __future__ import absolute_import
python2缺省会搜索上一级目录、上上级目录


解决方案:
import platformpver=platform.python_version()pversion= int(pver.split('.')[0])try: if pversion==2:     print(1)     from .A import aa else:   print(2)   from A import aaexcept:  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为当前目录

  4. 出现SystemError: Parent module '' not loaded, cannot perform relative import错误一个原因为包内使用相对路径,改用python -m可解决


原创粉丝点击