본문 바로가기
language/Python

python 2 vs python 3 주요 차이점

by 스파이디웹 2021. 8. 19.
728x90

프로젝트를 하면서 python2 version과 python3 version의 차이 때문에 생긴 에러가 있었는데, 그에 따라 python version 별 차이점을 간단하게 정리해보려고 합니다.

 

1. 프로젝트에서 발생한 에러

spark 프로젝트를 하면서 L 즉 LongType의 데이터를 다루게 되었습니다. 해당 코드도 그에 맞게 작성 했는데,

python 2 version로 script를 돌릴 때는 문제없이 돌 던 것이 default로 설정 되어있던 python 3 version에서는 에러가 발생했습니다.

 

log를 살펴보니,,, LongType에 관한 에러라고 나왔고.

python 2 와 3의 차이점을 살펴 보았습니다.

 

  PYTHON 2 PYTHON 3
PRINT PRINT가 함수가 아니라 ()없이 ""만으로도 사용 할 수 있었다. PRINT가 함수가 되면서 ()는 필수가 되었다.
LONG*(프로젝트issue와 관련된 변경사항) LongType, IntType이 따로 있었다. LongType은 사라지고 IntType로 통합되었다.
int/int int/int 2/3은 0(int)으로 나온다. int/int 2/3은 0.66666 (float)으로 나온다.
String, unicode string type unicode type 따로 있었다. String type으로 통일, bytes 타입이 생겼다.

이외에도 다양한 변경점이 있지만, 주요한 변경점은 위와 같다고 볼 수 있습니다.


2.프로젝트 issue 해결

python3에서는 LONG type이 사라지면서 Long type을 인식하지 못하는 에러를 뿜어내고 있었습니다.

 

우선 급한대로 python2 와 3을 호환하는 코드를 작성하진 않았고, (기존의 HQL -> pyspark 으로 변환하는 작업이라)

기존 python2 interpreter를 사용하여 에러를 회피하였습니다.

728x90

댓글