다음과 같은 dir 구조를 가지고 있다고 해보자.
1. os, sys module로 상위 dir import 하기
import os, sys
sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))
"""
['C:\\Users\\ADmin\\anaconda3\\envs\\text\\project\\text_mining',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\python36.zip',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\DLLs',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\lib',
'C:\\Users\\ADmin\\anaconda3\\envs\\text',
'C:\\Users\\ADmin\\AppData\\Roaming\\Python\\Python36\\site-packages',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\lib\\site-packages',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\lib\\site-packages\\win32',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\lib\\site-packages\\win32\\lib',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\lib\\site-packages\\Pythonwin',
"""
"""
['C:\\Users\\ADmin\\anaconda3\\envs\\text\\project\\text_mining',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\python36.zip',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\DLLs',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\lib',
'C:\\Users\\ADmin\\anaconda3\\envs\\text',
'C:\\Users\\ADmin\\AppData\\Roaming\\Python\\Python36\\site-packages',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\lib\\site-packages',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\lib\\site-packages\\win32',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\lib\\site-packages\\win32\\lib',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\lib\\site-packages\\Pythonwin',
'C:\\Users\\ADmin\\anaconda3\\envs\\text\\project']
"""
위 코드를 입력하게되면,
print(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) # C:\Users\ADmin\anaconda3\envs\text\project
print((os.path.abspath(os.path.dirname(__file__)))) # C:\Users\ADmin\anaconda3\envs\text\project\text_mining
print(os.path.dirname(__file__)) # None
이 코드의 abspath 때문에 부모 상위 dir 로 가게된다.
따라서 path에 상위 dir가 추가가 되는 것이다.
만약 상위에 상위 dir를 참조하고 싶다하면, 저 code를 한 번 더 적어주면 된다.
2. from --- import --- 할 때, 전체 dir부터 적어주기.
from project.utils.ToolSet import OsTool, StringTool
위에처럼 code를 복잡하게 적을 필요 없이, 그냥 처음 부모 dir 부터 적어주면 된다.
https://hashcode.co.kr/questions/7132/%ED%8C%8C%EC%9D%B4%EC%8D%AC-relative-package
'대학원 공부 > programming language' 카테고리의 다른 글
Matplotlib : 3차원 그래프 그리기 (0) | 2020.06.04 |
---|---|
Python : 반올림, 올림, 내림 (0) | 2020.06.04 |
Web : semantic 하게 웹을 짠다는 것. (0) | 2020.05.12 |
CSS : class naming (OOCSS) (0) | 2020.05.12 |
CSS : CSS 짤 때 좋은 습관, 나쁜 습관 (0) | 2020.05.12 |
댓글