os.path.dirname() 獲取父目錄
os.path.basename() #獲取文件名或者文件夾名
python2缺省為相對路徑導入,python3缺省為絕對路徑導入
python2絕對路徑導入
1
|
from __future__ import absolute_import |
python2缺省會搜索上一級目錄、上上級目錄
解決方案:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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 |
異常處理版:
1
2
3
4
5
6
|
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相對路徑、絕對路徑導入方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/jacke121/article/details/77347432