浅谈Python2、Python3相对路径、绝对路径导入方法

yipeiwu_com5年前Python基础

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可解决。

以上这篇浅谈Python2、Python3相对路径、绝对路径导入方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

对python读写文件去重、RE、set的使用详解

如下所示: # -*- coding:utf-8 -*- from datetime import datetime import re def Main(): sou...

利用PyInstaller将python程序.py转为.exe的方法详解

前言 最近经常用到一个.py程序,但是每次在不同电脑上用,希望能把Python脚本发布为脱离Python平台运行的可执行程序,比如单个exe。PyInstalle满足要求。 PyIns...

python opencv 实现对图像边缘扩充

python opencv 实现对图像边缘扩充

原始图像 根据图像的边界的像素值,向外扩充图片,每个方向扩充50个像素。 a = cv2.copyMakeBorder(img,50,50,50,50,cv2.BORDER_REPL...

python返回数组的索引实例

使用python里的index nums = [1, 2, 3, 4, 5, 6, 1, 9] print nums.index(max(nums)) print nums.inde...

六个窍门助你提高Python运行效率

不喜欢Python的人经常会吐嘈Python运行太慢。但是,事实并非如此。尝试以下六个窍门,来为你的Python应用提速。 窍门一:关键代码使用外部功能包 Python简化了许多编程任务...