일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- pywinauto
- Selenium 셀렉터잡기
- pywinauto 윈도우
- selenium
- pycdas.exe
- uipath 입문
- 커머스API
- vscode venv 설치
- 네이버 로그인 영수증 해결
- venv 설치
- pycdc.exe
- Python
- 파이썬 가상환경 설치방법
- Uipath 기초
- 파이썬 가상환경 설치
- 파이썬 네이버 로그인
- UiPath
- 네이버 로그인 캡챠해결
- Uipath 설치방법
- pywinauto 윈도우제어
- Element is not clickable at point
- 가상환경설치
- 파이썬 환경설정
- 네이버부동산크롤링
- 네이버매물크롤링
- 날짜 정규식
- 네이버 로그인 하기
- 네이버커머스API
- 파이썬네이버부동산
- 왕초보 파이썬 실행
- Today
- Total
콘솔워크
파이썬 절대경로 상대경로 참조, 패키지 안에서 다른 패키지 호출, 모듈안에서 다른 모듈 호출 본문
예를들어 aa.py에서 sub2에 있는 cc.py을 참조하는 방법은 두 가지가 있습니다.프로젝트구조
다른 모듈 참조
# aa.py를 참조할 경우
from sub1 import aa
# ff.py를 참조할 경우
import ff
# 또는
from . import ff # from . 은 동일폴더라는 의미를 나타냄.
상위 폴더 내 파일 참조
예를들어 aa.py에서 sub2에 있는 cc.py을 참조하는 방법은 두 가지가 있습니다.
1. 부모폴더의 절대경로를 참조 path에 추가
어플리케이션이 기동되는 가장 첫부분에 import에 아래와 같은 코드를 추가하면 문제는 해결됩니다.
# aa.py
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))
import cc.py
현재 모듈의 절대경로를 알아내어 상위 폴더 절대경로를 참조 path에 추가하는 방식입니다. 위에 있는 코드는 1단계 상위 폴더의 경로를 추가할 때 사용합니다.
만약 aa.py에서 gg.py를 참조한다고 하면 2단계 상위 폴더 경로를 추가해야 하므로 아래와 같이 코드가 길어집니다.
# gg.py
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))))
import gg.py
2. 시스템의 환경변수 PYTHONPATH에 프로젝트 추가
이 방법은 모든 파이썬 프로젝트에서 built-in 모듈을 그냥 import 할 수 있는 것과 마찬가지의 원리로 시스템의 파이썬 컴파일러가 기본적으로 참조하게 될 패키지 모듈에 자신의 프로젝트를 추가하는 형태입니다.
윈도우
제어판 - 시스템 - 고급 - 환경변수 에 가서 PYTHON_PATH를 편집하여 자신의 프로젝트 홈 폴더를 맨 뒤에 붙여주면 됩니다.
리눅스
추가할 프로젝트의 절대경로가 /home/user/project일 경우, 홈 폴더의 .bash_profile 에 아래와 같은 코드를 추가하여 시스템 환경변수를 변경하는 것입니다.
$ vi ~/bash_profile
========= bash_profile =========
...
PYTHONPATH=$PYTHONPATH:/home/user/test
export PYTHONPATH
============================
$ source ~/bash_profile
3. 포인트 (.)를 이용한 상대경로 탐색
../../ 와같은 상대경로 표시를 통해 상위 모듈에 접근하는 방법입니다.
아래의 예를 통해, 현재 life.py에서 nib.py를 호출한다고하면, from ... import nib면 되겠네요.
참고 : https://stackoverflow.com/questions/714063/importing-modules-from-parent-folder
ptdraft/
nib.py
simulations/
life/
life.py
from ... import nib
'프로그래밍 > python' 카테고리의 다른 글
파이썬 pyinstaller google colud vision 사용 시 오류 발생 될 때 (0) | 2022.05.11 |
---|---|
pyinstaller hook-sqlalchemy.py 오류 error (0) | 2022.05.06 |
python 파이썬으로 html 코드에서 주석만 추출하는 방법 remove <!-- --> beatuifulsoup4 사용 (0) | 2022.04.09 |
python html 파일 png 또는 pdf로 변경 코드 (0) | 2022.03.31 |
파이썬 딕셔너리 값 대입 (0) | 2022.03.20 |