관리 메뉴

솜씨좋은장씨

[Python] 2to3 를 통해 Python 2로 작성된 코드를 Python3로 쉽게 바꾸어보기! 본문

Programming/Python

[Python] 2to3 를 통해 Python 2로 작성된 코드를 Python3로 쉽게 바꾸어보기!

솜씨좋은장씨 2020. 4. 2. 11:03
728x90
반응형

2020년 1월 1일, Python2.7 버전의 공식 지원이 종료되었습니다.

 

공식지원이 종료가 되어도 Python 2 버전으로 작성된 코드가 실행이되지 않거나 하지는 않지만

 

추후 Python2에서 보안에 대한 문제가 생기거나 할 시

추가적으로 그부분에 대해 추가적으로 업데이트를 지원받기 어려운 부분도 있을 수도 있고

 

코딩을하면서 라이브러리를 사용하려고 할 때 Python2 를 지원하지 않아 사용할 수 없을 수도 있습니다.

 

이에 Python3를 설치하면 Python2로 작성된 코드를 Python3로 바꾸어주는 기본 라이브러리를 제공하고 있습니다.

 

그것이 바로 2to3입니다.

 

 

2to3 - 파이썬 2에서 파이썬 3으로 자동 코드 변환 — Python 3.8.2 문서

2to3 - 파이썬 2에서 파이썬 3으로 자동 코드 변환 2to3는 파이썬 2.x 소스 코드를 유효한 파이썬 3.x 코드로 변환하기 위해 일련의 변환자(fixers)를 적용하는 프로그램입니다. 표준 라이브러리는 많은 양의 변환자를 제공하고 있어 코드 대부분을 처리할 수 있을 것입니다. 2to3에서 사용하는 모듈인 lib2to3 는 유연하고 제네릭합니다. 따라서 2to3 프로그램을 위해 당신만의 변환자를 작성할 수 있습니다. 또한 lib2to3 는 파이썬

docs.python.org

자세한 내용은 위의 링크에서 확인이 가능합니다.

 

위의 링크에 나온 샘플 코드를 직접 실행해보았습니다.

 

2to3 사용해보기

먼저 vi 편집기와 Python2를 활용하여

이름을 하나 입력 받고 입력 받은 이름 앞에 Hello, 를 붙여 출력하도록 하는 샘플 코드를 하나 작성해보았습니다.

vi 2to3_example.py
def greet(name):
    print "Hello, {0}!".format(name)
print "What's your name?"
name = raw_input()
greet(name)

 

python2 2to3_example.py

이상없이 잘 실행되는 것을 확인하였다면 이제 2to3를 활용하여 Python3 로 코드를 바꾸어 보겠습니다.

(여기서 코드 실행 시 python2로 실행한 이유는 python으로 실행시 기본적으로 실행되는 버전이 Python3여서

Python2버전으로 실행하기 위해서 입니다.)

2to3 2to3_example.py

위처럼 2to3 다음에 Python3로 변경을 희망하는 Python2의 코드 이름을 입력하게되면

현재의 Python2 코드에서 어떤 부분이 어떻게 변경해야하는지 알려줍니다.

cat 2to3_example.py

cat 명령어로 내용이 바뀌었는지 확인해보면 바뀌지 않은 것을 볼 수 있습니다.

이 방법에서는 어떤 부분을 어떻게 바꾸어야하는지만 보여주고 바로 바뀌지는 않습니다.

 

만약 명령어를 통해 바로 Python2 코드를 Python3로 바꾸고 싶다면

2to3 -w 2to3_example.py

2to3뒤에 -w를 붙여주게되면 추가로 수정없이 바로 할 수 있습니다.

 

cat 2to3_example.py

다시 cat 명령어를 통해 확인해보면 이번에는 Python3 코드로 변경된 것을 확인할 수 있습니다.

python 2to3_example.py

제대로 실행되는지 확인해보면 이상없이 잘 실행되는 것을 확인할 수 있습니다.

 

이렇게 기본적으로 제공되는 라이브러리를 통해 쉽게 Python2코드를 Python3로 바꿀 수 있었습니다.

 

다만, 항상 이 방법을 사용하여 코드를 바꾸는 것은 추천하지 않는다고 합니다.

 

2to3 명령어를 통해 어떤 부분을 어떻게 바꿀지 확인하면서 차근차근 하나씩 바꾸어 나가는 것이 좋을 것 같습니다.

 

추가적인 기능 및 설명은 공식 문서를 참고 바랍니다!

 

2to3 - 파이썬 2에서 파이썬 3으로 자동 코드 변환 — Python 3.8.2 문서

2to3 - 파이썬 2에서 파이썬 3으로 자동 코드 변환 2to3는 파이썬 2.x 소스 코드를 유효한 파이썬 3.x 코드로 변환하기 위해 일련의 변환자(fixers)를 적용하는 프로그램입니다. 표준 라이브러리는 많은 양의 변환자를 제공하고 있어 코드 대부분을 처리할 수 있을 것입니다. 2to3에서 사용하는 모듈인 lib2to3 는 유연하고 제네릭합니다. 따라서 2to3 프로그램을 위해 당신만의 변환자를 작성할 수 있습니다. 또한 lib2to3 는 파이썬

docs.python.org

읽어주셔서 감사합니다.

Comments