윈도우에 우분투(wsl) 파이썬 개발환경 구축하기

최근에 우분투를 지우고 다시 윈도우로 돌아왔습니다.

윈도우에서 개발환경을 맞추려고 하니 환경변수 설정이나 터미널 환경 등이 불편해서
윈도우 내에서 우분투(WSL)를 적극 활용할려고 마음을 먹었습니다.
그리고, 데이터사이언스 관련한 패키지 관리 시스템인 conda를 버리고
폴더로 환경 만들어서 하는 것도 직접 activate하는 것도 불편해서 pyenv-virtualenvwrapper를 사용하겠습니다.

지금부터

  1. WSL 설치
  2. VSCODE 설치 Default Shell 설정
  3. WSL에서 python 가상환경 venvwrapper 설정 로 진행하겠습니다.

우분투(WSL) 설치

먼저, 윈도우10 내에 우분투를 설치해보도록 하겠습니다.

요구사항

  • windows 10 64bit
  • 버전 1607 이상
  • 컴퓨터의 계정 이메일 로그인

을 충족하셨으면 검색 - Windows 기능 켜기/끄기를 들어가셔서

image

linux용 windows하위 시스템을 체크 선택 해주시면 됩니다.

다음, microsoft store에서 ubuntu를 검색하셔서

image

다운받아주시면 됩니다. 끝

이제 ubuntu 들어가셔서 username, password등을 설정하시면 정상작동 하실 겁니다.

하지만, 지금 바탕화면에 깔린 파일을 작업 할려면 마운트를 해야합니다.
windows powershell 들어가셔서 bash명령어를 치시면 자동으로 현재 디렉토리로 마운트 됩니다.

image

저는 이 작업이 귀찮아서 다음으로 vscode에서 default shell로 설정하는 것을 하겠습니다.


VSCODE 설치 및 default shell 설정

vscode 다운로드 사이트 들어가셔서

image

를 눌러서 다운받으시면 됩니다.

전부 다 예 누르면서 진행하시면 됩니다.
(옵션 보시고 필요해보이시는 거는 체크하셔도 됩니다. path추가만 안지우시면 됩니다.)

설치가 다 되었으면 키셔서 ctrl + ~(1 왼쪽 키) 를 누르시면 밑에 터미널창이 뜨실겁니다.
image

오른쪽 밑에 wsl(기본은 powershell)이라고 써져있는 부분을 누르면
select default shell이라는 메뉴가 나와서 누르면
중앙 상단에 선택할 수 있는 shell들이 나오는데 wsl bash로 바꿔주시면 됩니다.
컴퓨터를 껐다 키셔도 자동으로 마운트돼서 wsl bash가 나올겁니다! 끝


pyenv-virtualenvwrapper로 python 개발환경 셋팅하기

anaconda랑 폴더로 가상환경 세팅하는 것 말고 pyenv-virtualenvwrapper를 사용하는 방법이 있어 설정해보겠다.

  • pyenv: Python을 여러 버전을 설치할 수 있도록 도와주고, 현재 사용할 Python 버전을 정할 수 있게 해줍니다.
  • virtualenv: virtualenv 관련 디렉토리를 한 곳에 몰아서 관리해주고, activate 등의 작업을 보다 편하게 할 수 있도록 도와줍니다.

참고로, 원래 window에서는 사용불가능한 세팅이다. 우분투에서 설치하는 것과 같은방법이다.

세팅방법

pyenv 설치

curl https://pyenv.run | bash


shell 세팅

bashrc파일을 키셔서

vim ~/.bashrc 

파일 맨 밑에 해당 코드를 추가해 줍니다.

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

밑에 명령어로 shell을 재시작 해줍시다.

exec "$SHELL"


python 설치

pyenv install 3.7.2
pyenv global 3.7.2

이 부분 설치할 때 에러가 많이 뜰 것입니다.
밑에 명령어를 실행하시고 다시 설치해주세요!
내가 설치했던 것들을 적어 놓을텐데 빼먹은 거 있으면 댓글로 남겨주시면 감사하겠습니다. 참고 블로그

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev


pyenv-virtualenvwrapper 설치

git clone https://github.com/pyenv/pyenv-virtualenvwrapper.git $(pyenv root)/plugins/pyenv-virtualenvwrapper


shell 설정

아까 열었던 .bashrc에 마지막에 밑에 코드를 추가해준다.

pyenv virtualenvwrapper_lazy

다시 shell 재시작

exec "$SHELL"

끝! 간단한 사용법을 남기고 글을 마무리 짓겠습니다.


pyenv 명령어

예를 들어 web이라는 가상환경을 만들고 사용하고 싶으면

mkvirtualenv web
workon web

처럼 사용하시면 됩니다. 평소에 하시던 것처럼 pip install명령어를 통해 라이브러리 설치하시면 됩니다.

pyenv install [version] # Python 버전 설치
pyenv versions # 현재 설치된 Python 버전 목록
pyenv global [version] # 전역 Python 버전 변경
mkvirtualenv [project name] # 프로젝트를 위해 virtualenv 생성
workon [project name] # virtualenv 활성화
deactivate # virtualenv 비활성화
setvirtualenvproject # 현재 디렉토리를 프로젝트의 Home 디렉토리로 설정하기
rmvirtualenv [project name] # virtualenv 삭제
lsvirtualenv # virtualenv 목록


이제 window안에서도 lunux환경에서 python을 제대로 사용할 수 있다!


출처
  • https://beelinekim.tistory.com/2
  • https://webnautes.tistory.com/1197
  • https://devlog.jwgo.kr/2019/06/05/must-installed-lib-when-installing-python-using-pyenv/