me

[파이참] python 3.12 파이참에서 가상환경 세팅 오류 – python 3.12 interpreter error
2024.11.27 / ,

python 3.12 파이참에서 가상환경 세팅 오류 발생했다.

신규 프로젝트에서 python 3.12.7을 쓰기로 마음먹고 평소처럼 가상 환경 세팅을 진행하는데

파이참에서 인식이 안 된다. 정확히는 가상환경에 버전 값이 신규가 아닌 다른 값이 뜬다.

python 3.12 버전 확인

분명 CMD에서 찍어서 확인해보면 3.12.7 버전으로 잘 뜨는데 말이지…

그래서 기존 파이썬의 가상환경 값을 지우고 재지정하기로~!

그래서 강제로 [File] -> [Settings…] -> [Project: D_mobis2][Python Interpreter]로 들어가서

python 3.12 가상환경 세팅

버전을 확인 했던 가상환경 파일을 [Existing environment]에서 연결 해주었는데…

python 3.12 파이참에서 가상환경 세팅 오류1

여전히 인식이 안되고 있다… 흠….


파이참 캐시 삭제

파이참에 캐시 문제인가 하고 캐시도 삭제해 봤다.

[File] 에서 [Invalidate Caches…] 들어가서

[INVALIDATE AND RESTART] 눌러주면 캐시가 지워지고 파이참이 다시 켜지는데…

그렇게 해도 되지 않았다 ㅠㅡㅠ


python 3.12 파이참에서 가상환경 세팅 오류 해결 방법

이리저리 찾아보니 3.12에서 distutils 모듈이 지원 종료해서 그렇다고 한다.

출처: https://stackoverflow.com/questions/77247893/modulenotfounderror-no-module-named-distutils-in-python-3-12

조금 더 찾아보니깐…

distutils는 오랫동안 Python의 표준 배포 도구였지만, 현재는 더 강력한 setuptools로 대체되고 있다고 한다.

그래서 해결법은 새로운 모듈 설치!

$ pip install --upgrade setuptools

저렇게 설치하고 나면 패키지는 잘 가져온다…

그런데 여전히 3.10으로 이름이 찍히네.. 흠… 어쩌지 ㅠㅡㅠ

다시 캐시를 지우고 해봐도 똑같이 3.10이다..

혹시 해서 파이썬 3.12를 지우고 다시 설치 후 동일하게 해도 이름이 3.10이다 ㅠㅡㅠ

왜 그럴까나 ㅠㅡㅠ

마지막.. 파이참을 새로 깔아보자~~~~

새로 깔고 했더니

python 3.12 파이참에서 가상환경 세팅 오류 정상 화면

12 버전으로 보인다~ 파이참이 너무 예전 버전이라 안보였던 건 가봐 ㅠㅡㅠ 에디터를 너무 신경 안 썼네;;;

파이참 다운로드: https://www.jetbrains.com/ko-kr/pycharm/download/?section=windows

즉 결론은,

  1. 파이참이 너무 오래 되었으면 새로 받자
  2. 패키지가 안나오면 pip install –upgrade setuptools 로 설치하자~


참고로 Distutils와 setuptools의 주요 차이점은?

  1. 기능 범위: Distutils는 기본적인 패키지 빌드 및 설치 기능만 제공하는 반면, setuptools는 더 많은 고급 기능을 제공합니다
  2. 의존성 관리: setuptools는 패키지 간 의존성을 선언하고 관리할 수 있는 기능을 제공하지만, distutils는 이러한 기능이 없습니다
  3. PyPI 통합: setuptools는 PyPI(Python Package Index)에 패키지를 업로드하고 다운로드할 수 있는 기능을 제공하지만, distutils는 이를 지원하지 않습니다
  4. 패키지 확장성: setuptools는 “진입점(entry points)” 기능을 통해 한 패키지가 다른 패키지를 확장할 수 있게 해주는 반면, distutils는 이러한 기능이 없습니다
  5. 자동 패키지 검색: setuptools는 find_packages() 함수를 통해 자동으로 패키지를 검색할 수 있지만, distutils는 모든 패키지를 명시적으로 나열해야 합니다
  6. 리소스 관리: setuptools는 MANIFEST.in 파일을 통해 정적 파일과 템플릿을 쉽게 포함할 수 있게 해주는 반면, distutils는 이러한 기능이 제한적입니다

다른 파이썬 글들: https://pixiclue.com/tag/python/