불필요한 시행착오
주가 예측 모형을 만들면서 백테스트를 수행하기 위해 zipline이 필요했습니다. zipline은 파이썬 3.4와 3.5에서 돌아가는데, 제가 사용하는 파이썬 버젼은 3.7이었고, 이때는 가상환경이 불필요하여 사용하지 않고 있었습니다. 파이선 3.5를 설치하기 위해, 아나콘다에서 가상환경을 만들었습니다.
가상환경 이름은 ’py35’로 설정하였습니다. 가상환경 이름은 원하는 이름으로 기입하시면 됩니다.
가상환경을 설치하고 원하는 패키지를 설치하는 것 까지는 아무런 문제가 없었지만, 아톰을 사용하는 저에게 아나콘다에서 생성한 가상환경에서 스크립트를 실행할 때 문제가 있었습니다. 아나콘다에서 만든 파이썬 가상환경 기반으로 Atom에서 파이썬 스크립트를 실행하기 위해서는, 아나콘다 가상환경을 실행한 뒤, 가상환경 터미널 창에서 Atom을 다시 실행해야 했습니다. 이렇게 시작된 Atom은 기존 작업 환경(왼쪽 Project 폴더 등)을 불러오는 것이 아니라, 아예 빈 새로운 페이지 하나가 뜨는 방식이었습니다. 매번, 아나콘다를 실행시키고 Atom을 실행한 뒤, 원하는 프로젝트 폴더를 추가하는 작업을 반복해야 했습니다. 새로 실행된 페이지만 아나콘다 가상환경을 베이스로 파이썬을 실행시키고, 일반적으로 사용하는 Atom에서는 기존 커널로 작동했습니다.
저는 일반적으로 실행하는 아톰에서 원하는 파이썬 가상환경을 사용하고 싶었습니다. 처음 생각한 해결책은 virtualenvwrapper를 이용하는 것이었습니다. Atom은 virtualenvwrapper를 지원했고, 저는 신이났지만 시간이 좀 지나서 헛수고인 것을 알았습니다. virtualenvwrapper는 아나콘다의 가상환경을 지원하지 않았습니다. 그래서 아나콘다만든 가상환경 위에 virtualenvwrapper를 통해 만든 가상환경을 올리는 방법을 생각했습니다.
’경로\Anaconda3\envs\py35\python.exe’는 아나콘다에서 가상환경으로 설치한 파이썬 경로입니다.
이렇게 설정하면, virtualenvwrapper은 아나콘다의 가상환경을 py35라는 자신의 가상환경으로 가져올 것이라 생각했습니다. 하지만, 이 방법은 안 통했습니다. 지금 생각하면, 파이썬의 실행 원리를 제대로 몰라서 한 바보같은 행동이었습니다.
정말 간단한 방법
정말 많은 시행착오를 겪으면서(지금 생각하면 참 멍청했습니다만…), 결국 해결했습니다. 정말 간단한 방법인데, 배경을 말씀드리면 저는 Atom에서 hydrogen 패키지를 이용하고 있었습니다. jupyter notebook이랑 연동하여 돌아가는 hydrogen이었기에, ijupyter를 이용해서 커널을 추가하면 hydrogen에서도 원하는 파이썬 버전을 선택할 수 있다는 것을 알았습니다. 우선 ipykernel을 설치했습니다. ipykernel은 가상환경에 설치하시면 됩니다. 원하는 가상환경에 접속하여 아래 스크립트를 입력하였습니다.
py35는 앞서 만들어놓은 가상환경입니다.
그러면, 지금까지의 헛수고가 안타깝게도, 매우 간단하고 깔끔하게 Atom에서 hydrogen을 통해 파이썬을 실행할 때, 원하는 파이썬 버전을 선택할 수 있게 뜹니다! 이 글을 읽는 여러분들은 저 처럼 이상하고 간단한 것에 시간을 허비하지 않으시길 바랍니다.