파이썬 업데이트(버전2 -> 버전3) 후 yum 에서 SyntaxError가 발생한다.

2022.06.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

안녕하세요, 임채정입니다.
저번에 파이썬을 업데이트 했는데 yum에서 에러가 발생했습니다.
이번 블로그에서는 해당 에러를 해결해보겠습니다.

에러 발생 경로

python 2.7 에서 3.8 로 업데이트한 후로 에러 발생

yum 에러

에러를 다음과 같습니다.

yum update
#   File "/usr/bin/yum", line 30
#     except KeyboardInterrupt, e:
#                             ^
# SyntaxError: invalid syntax

원인은 alternatives를 사용하여 "2.7"에서 "3.8"로 버전 업을 하면서 python 2.7 에 대한 심볼릭 링크를 python 3.8 에 억지로 이어붙였더니 생긴 에러 같습니다.

해결방법은 크게 두 개로 나눨 수 있을 것같습니다.

1. python 버전을 python 2.7 로 다시 변경한다.

변경 방법은 다음과 같습니다.

python 2.7 으로 다시 변경해주면 다음과 같이 yum 명령어를 문제없이 사용할 수 있게됩니다.

sudo yum update
# Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
# amzn2-core                                                                      | 3.7 kB  00:00:00
# No packages marked for update

2. 무조건 python 3.8 을 사용하고 싶은 경우 설정파일을 수정한다.

/usr/bin/yum 파일에서 /usr/bin/python -> /usr/bin/python2 로 수정합니다.

sudo vi /usr/bin/yum

#!/usr/bin/python
import sys
try:
    import yum
except ImportError:
    print >> sys.stderr, """\
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   %s

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
%s

If you cannot solve this problem yourself, please go to
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

""" % (sys.exc_value, sys.version)

이렇게 수정을 한 후에 돌아와서 yum 명령어를 실행시켜보면

sudo yum update
# Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
# amzn2-core                                                                      | 3.7 kB  00:00:00
# No packages marked for update

다음과 같이 잘 yum 명령어가 잘 실행됩니다.

물론 개인적으로는 2번째 방법보다 1번째 방법이 안전하고 쉽기 때문에 추천드리지만 상황에 따라서 자신에게 맞는 방식을 선택해 해결면 좋을 것같습니다!

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다!