본문 바로가기
ML, DL/환경설정 (마음의 평화)

[Ubuntu] - [python] - [virtualenv] 환경설정

by Wordbe 2019. 7. 19.
728x90

목표 - ubuntu에서 python버전별로 (2.7, 3,6) virtualenv(가상환경) 설정하기

Linux (ubuntu) 환경

ubuntu 16.04 LTS 이후 버전은 운영체제에 기본적으로 python 2.7과 python 3.5(ubuntu 18.04는 python3.6)이 깔려있다.
아래와 같이 터미널에 명령어를 입력하여 직접 눈으로 확인해보자.
참고로 필자는 리눅스 ubuntu 18.04 LTS 버전에서 작업하였다.

 

$ python -V
Python 2.7.15+

$ python3 -V
Python 3.6.8

-V 대신 --version을 입력해도 된다.

python 환경에 맞추어서 pip도 두 가지 버전으로 나뉘어져 있다.
pip은 여러 python 라이브러리를 다운 받을 때 사용한다.
직접 확인해보자.

 

$ pip -V
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip3 -V
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

역시나 -V 대신 --version쳐도 무방하다

apt-get 도 그렇지만 pip도 항상 upgrade가 먼저 되어있는지 확인해보자.

 

삽질 방지

가상환경 밖에서 pip을 사용하면 경로문제가 생기니 주의하자

$ pip install --upgrade pip
$ pip -V
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

$ hash -d pip
$ pip -V
pip 19.1.1 from /home/jin/.local/lib/python2.7/site-packages/pip (python 2.7)

 

hash -d pip 명령어 중 -d는 'forget'이라는 의미로, 쉽게 말해 꼬였던 경로 설정 문제를 해결해준다.
위 방법 말고도,
pip2 또는, pip2.7 이렇게 써서 쓸 수도 있으나 우리는 pip으로 이용하고 싶으므로 위와 같이하면,
pip 명령어는 자동으로 python 2.7에서 사용하는 pip 버전이 된다.

그리고 되도록 가상환경 밖에서는 pip을 이용하지 말고, 가상환경 안에서 이용하자

자세한 것은 스택오버플로우를 참고하자
[https://stackoverflow.com/questions/49964093/file-usr-bin-pip-line-9-in-module-from-pip-import-main-importerror-canno]

가상환경 설치

$ pip install virtualenv

$ pip3 install virtualenv


$ python -m virtualenv venv-python2.7

$ python3 -m virtualenv venv-python3.6

 

버전에 맞게 골라서 설치하면 된다.
맨 오른쪽의 venv-python2.7은 가상환경 폴더이름이다. 사용자에 맞게 알아서 지으시면 됩니다.

자 이제 가상환경 폴더에 cd를 이용하여 들어간다.
잘 맞게 깔렸는지 확인해보자.

 

jin@rtx-p40:~/workspace/venv-python2.7$ source bin/activate
(venv-python2.7) jin@rtx-p40:~/workspace/venv-python2.7$ ls
bin  include  lib  local
(venv-python2.7) jin@rtx-p40:~/workspace/venv-python2.7$ python -V
Python 2.7.15+
(venv-python2.7) jin@rtx-p40:~/workspace/venv-python2.7$ pip -V
pip 19.1.1 from /home/jin/workspace/venv-python2.7/local/lib/python2.7/site-packages/pip (python 2.7)
(venv-python2.7) jin@rtx-p40:~/workspace$ deactivate

jin@rtx-p40:~/workspace$ cd venv-python3.6/
jin@rtx-p40:~/workspace/venv-python3.6$ source bin/activate
(venv-python3.6) jin@rtx-p40:~/workspace/venv-python3.6$ python -V
Python 3.6.8
(venv-python3.6) jin@rtx-p40:~/workspace/venv-python3.6$ pip3 -V
pip 19.1.1 from /home/jin/workspace/venv-python3.6/lib/python3.6/site-packages/pip (python 3.6)
(venv-python3.6) jin@rtx-p40:~/workspace/venv-python3.6$ pip -V
pip 19.1.1 from /home/jin/workspace/venv-python3.6/lib/python3.6/site-packages/pip (python 3.6)
(venv-python3.6) jin@rtx-p40:~/workspace/venv-python3.6$ deactivate
jin@rtx-p40:~/workspace/venv-python3.6$

 

각각 환경에서 알맞게 설정이 된 것을 알 수 있다.

 

감사합니다.

다시 이런 문제가 생길 때를 대비하기 위해,
혹은 처음하시는 분들이 해매실 때를 위해 ,
조금이라도 시간을 단축시켜드리고 싶어서 이 글을 작성하였습니다.

환경설정 원리를 알고 다른 라이브러리도 이에 맞게 잘 설치하시길 바랍니다.
읽어주셔 감사합니다.

다음에는 가상환경을 조금 더 편리하게 사용하기 위한 툴인 docker를 설명해보겠습니다.

728x90

댓글