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

yipeiwu_com7年前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 共享变量加锁、释放详解

Python 共享变量加锁、释放详解

一、共享变量 共享变量:当多个线程访问同一个变量的时候。会产生共享变量的问题。 例子: import threading sum = 0 loopSum = 1000000 def...

Python使用正则实现计算字符串算式

在Python里面其实有一种特别方便实用的直接计算字符串算式的方法 那就是eval() s = '1+2*(6/2-9+3*(3*9-9))' print(eval(s)) #97....

python字典键值对的添加和遍历方法

添加键值对 首先定义一个空字典 >>> dic={} 直接对字典中不存在的key进行赋值来添加 >>> dic['name']='zhangsan...

python numpy和list查询其中某个数的个数及定位方法

1. list 查询个数: 调用list.count(obj)函数,返回obj在list中的个数。 输入: list_a = [2 for x in range(5)] print(...

Python学习笔记之For循环用法详解

本文实例讲述了Python学习笔记之For循环用法。分享给大家供大家参考,具体如下: Python 中的For循环 Python 有两种类型的循环:for 循环和 while 循环。fo...