- 정적분석에 기반한 python2 코드를 python3로 변환하는 건 큰 문제가 아님
- 2to3 유틸리티가 기본적으로 제공됨
- -w 옵션으로 원본 파일을 직접 바꿀 수 있음
- 외부 패키지는 python3 디렉토리에 재설치가 필요함
- PYTHONPATH 환경변수가 /usr/local/lib/pythnon3..4/site-packages 등의 디렉토리로 지정되어야 함
- easy_install 바이너리도 python3용이 따로 존재함
- file에서 데이터를 읽으면 binary로 올라오기 때문에 해당 바이트문자열에 대해 decode(encoding=”utf-8″)을 걸어줘서 문자열로 변환해야 함
- 그렇지 않으면 b’hello world’와 같은 binary data가 됨
- utf-8 텍스트 파일을 읽을 때 다음과 같은 처리가 필요함
- fin = codecs.open(fileName, ‘rb’, encoding=’utf-8′, errors=’ignore’)
- stdin에서 읽을 때
- fin = io.TextIOWrapper(sys.stdin.buffer, encoding=’utf-8′, errors=’ignore’)
- 대신 일반적인 문자열은 유니코드로 다뤄지기 때문에 python2와 달리 별도의 처리가 필요없어졌음
- 참고 자료