R) RStudio 1.4의 Python 사용

R) RStudio 1.4의 Python 사용

RStudio가 1.4로 업데이트 되면서 Python 코드가 실행이 되지 않고 RStudio가 강제종료 되는 경우 대처법을 알아본다.

기존에 RStudio 1.4 버전 업데이트 게시물을 보면 Python 관련 개선사항이 제법 눈에 띈다. 하지만 RStudio 1.4 버전 업데이트 이후 Python 스크립트를 실행시키면….
Python 실행시 발생하는 RStudio 충돌

그렇다. 터진다.

물론 이렇게 폭탄그림이 나오기 전에 R에서 Python을 구동할 수 있도록 도와주는 reticulate 패키지를 업데이트 하라고 안내 문구가 뜨긴 하는데 이 것을 업데이트 해도 마찬가지다. 그래서 이번에 업데이트된 Python 버전 설정을 확인해보기로 하였다. [Global Options] 에서 다음과 같은 화면을 볼 수 있다.
reticulate의 Python 버전 설정

Python interpreter를 설정하려고 눌러보니 다음과 같이 뜬다.
Python interpreter 설정 화면

기존에 Anaconda를 설치하여 Jupyter Notebook으로 Python을 사용하고 있었기 때문에 위 그림과 같은 목록이 뜨는 것 같은데 error라고 되어있으니 여간 찝찝한 것이 아니다. 그렇다고 현재 사용하는 Python 관련 프로그램과 파일을 다시 다 지우고 설치하자니 영 시간이 많이걸리기 때문에 다시 설치하더라도 제대로 된다는 보장도 없어서 대안을 찾아보았다.

reticulate 패키지에는 Python을 가볍게 쓸 수 있는 Mini Conda를 설치하는 함수 install_miniconda()를 제공한다. 다음과 같이 코드를 실행해보았다.

1
2
library("reticulate")
install_miniconda()

Mini Conda 설치

그 다음에 새로운 환경을 세팅하도록 하자. 일단 포스팅 기준일인 210125를 붙였으나 각자가 원하는 환경으로 설정하길 바라며 다음과 같은 결과를 볼 수 있다.

1
conda_install(envname = "python_210125")

Python 환경 설정

Error in conda_install(envname = "python_210125") :
기본값이 없는 인수 "packages"가 누락되어 있습니다

라는 메세지가 뜨긴 하는데 무시해도 관계 없다.

설치 후에 다시 [Global Options]을 확인해보면 새로운 인터프리터가 생긴것을 확인 할 수 있다.
Mini Conda 설치 후 Python interpreter 설정 화면

최신버전인 Python 3.9.1 을 클릭하고 Python이 동작하는지 확인하였다.

1
2
3
4
5
6
library("reticulate")
aa = import(module = "os")
aa$listdir()
## [1] ".Rhistory" ".Rproj.user"
## [3] "00_ch00_sample.R" "02_ch02_basic_1.R"
## [5] "03_ch03_basic_2.R" "04_ch04_eda.R"

그리고 다음과 같이 Python 스크립트를 실행하면 정상동작 하는 것을 볼 수 있다.
Python 스크립트 실행 예시 - 정상 동작

하지만 아직도 완전하지는 않은 것 같다. 예를 들어서 Python 코드를 실행하다가 다시 R 코드를 실행한 이후 다시 Python 스크립트로 돌아와서 Python 코드를 실행시키는 경우 다음과 같이 RStudio가 터져버리는 것을 볼 수 있다. 나중에 개선되긴 하겠지만, Python 코드를 운용하고자 한다면 되도록 R 코드를 번갈아가며 실행하는 것은 주의하도록 하자.
Python 스크립트 실행 예시 - 에러

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×