7월 1주차 Error + Unknown 모음.

2023. 7. 8. 16:34Data Engineer

728x90

- six 모듈

: Six는 python2 및 3 호환성 라이브러리로, 유틸리티 기능을 제공한다. 두 Python 버전 모두에서 호환되는 Python 코드 작성을 목표로 Python 버전 간의 차이점을 매끄럽게 하기 위해 만들어졌다. Python 2.7 및 3.3 이상을 지원하며, 하나의 Python 파일에만 포함되어 있으므로 프로젝트에 쉽게 복사할 수 있다. 

https://six.readthedocs.io

pyspider를 지금 뜯어보고 있는데  six 모듈은 위 설명과 같이 이전 파이썬 버전의 함수를 사용할 수 있게 해주는 모듈인 것 같다.

- Python 상위/하위 폴더에 있는 파일 import 하기

파이썬에는 패키지 import 말고 내가 만든 파일을 불러 올 수 있다. 다음과 같은 문제는 깃헙에 있는 오픈소스를 clone하여 데이터를 로드하여 코드를 수정하는 데 문제가 되었었다. (Ex. NoModuleError) 이 문제는 파이썬 코드의 가독성을 위해서라도 반드시 알아야할 사항이다. 왜냐하면 다른 파일에 있는 함수를 가져오는 것(import)은 직접 입력하는 것보다 훨씬 효율적이기 때문이다. 

1. 같은 폴더에 있는 파일 import

Ex.

F1
|- aaa.py
|- bbb.py

다음과 같은 파일 구조가 있다고 가정하자.

aaa.py에서 bbb.py를 불러오고 싶을 때

# aaa.py에서 bbb.py를 불러오고 싶을 때
import bbb

다음과 같이 불러오면 bbb.py 내 코드를 사용할 수 있다.

2. 하위 폴더에 있는 파일 import

Ex.

-F1
|-aaa.py
|-bbb.py
--F2
|--ccc.py

F1 안에 있는 F2에 ccc.py 파일이 있는 경우, 

aaa.py에서 ccc.py를 불러오고 싶을 때

from F2 import ccc

 

3. 상위 폴더에 있는 파일 import

2에서 반대로, ccc.py에서 aaa.py를 불러오고 싶을 때

import sys, os
sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))

import aaa

이렇게 절대 경로를 참조하는 코드를 넣으면 F2와 같은 선상에 있는 aaa.py와 bbb.py를 불러올 수 있다.

4. 같은 선상에 있는 폴더 내 파일 import

- F1
|- aaa.py
|- bbb.py

--F2
|-- ccc.py

--F3
|-- ddd.py

ccc.py에서 ddd.py를 불러오고 싶을 때,

import sys, os
sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))

from F3 import ddd

마찬가지로 절대 경로 참조하는 코드를 넣어 import가 가능하다.

* 참고 : https://freedata.tistory.com/70

 

[python] 다른 폴더 파일 import

파이썬 상위 하위 폴더에 있는 파일 import 하기 파이썬에는 패키지 import 말고 내가 만든 파일을 불러 올 수 있다. 가끔 사용하면 종종 헷갈리는데 이번에 확실하게 익혀보자. from import 차이 같은

freedata.tistory.com

 

728x90

'Data Engineer' 카테고리의 다른 글

Spring 입문 강의 정리 노트  (0) 2023.07.31
Mac Java 11 설치  (0) 2023.07.27
오픈소스 분석법  (0) 2023.06.22
[Kafka] Consumer의 내부 동작 원리와 구현  (0) 2023.06.19
[Boaz] Data Pipeline 발제자료  (1) 2023.06.07