본문 바로가기
Python

ubuntu(우분투) python virtualenv 가상환경 생성

by ahsung 2019. 12. 29.

https://asung123456.tistory.com/2

 

ubuntu(우분투) python3.8, pip3.8, jupyter notebook설치, 삭제 주의 사항.

sudo apt install python3.8 명령을 통해 python3.8 설치는 간단하게 할 수 있습니다. 하지만 위 사진과 같이 삭제는 remove 혹은 purge를 사용하면 위험합니다. ubuntu os는 기본내장 python에 많은 부분에 종속..

asung123456.tistory.com

 

이전 포스팅에서 ubuntu 의 내장된 python의 종속성 때문에 함부로 업데이트하거나 변경할 수 없어, user 쪽에 pip등을 설치하여 root 경로의 python을 변경하지 않고 최신 pip과 다른 버전의 python을 사용하는 법을 다뤘습니다. ( 위 링크 참조)

 

 

Python의 경우 보통 작업을 할때 가상환경을 생성하고 그곳에서 프로젝트를 완성시킵니다.

그 이유로는 Python에는 정말 다양한 패키지들이 존재하는데

이 패키지들 간에 종속성이 있어   한가지 환경에서 모든 패키지를 설치하게 되면 문제가 생길 수 있습니다.

 

ex)

numpy의 최신버전을 사용하는 코드를 돌리고 있던 환경에서  tensorflow-gpu를 사용하려고할 때

gpu 드라이버 버전이 낮아, 낮은 버전의 tensorflow-gpu를 사용할 경우,

numpy 버전을 downGrade 해야하는 에러가 발생합니다. 

이럴 경우 매번 서로 다른 프로젝트를 실행하려 할때마다 numpy의 버전을 uninstall과 install을 하는 번거로움이 생깁니다.

 

이러한 이유로 python은 새로운 프로젝트마다 보통 가상환경을 만들어 사용하게 됩니다.

 

그중 venv 패키지도 있지만,  이는 pip이 따로 들어있지 않아 가상환경에만 사용할 패키지를 설치하기 쉽지 않습니다.

 

Anaconda도 쉽게 가상환경을 만들고 관리도 편하나, 사용하지 않는 많은 패키지가 설치되어 용량을 많이 잡아먹는 점, pip에 비해서 conda로 패키지를 설치할경우 최신 버전이 설치가 안될 수도 있습니다.

 

virtualenv 패키지를 사용하여 가상환경 생성

 

 

전 포스팅에서 저는 python3.8의 pip을 마지막에 설치했기때문에 

pip3 = pip3.8 으로 해당됩니다.

이 경우 virtualenv를 사용하여 가상환경을 만들면 기본적으로 python3.8을 인터프리터로 하는 가상환경을 만들게 됩니다.

python3.x 를 원하시는 분들은 해당 버전에 맞는 pip으로 깔아주세요.

pip3.x install virtualenv --user

user의 local에 해당하는 pip이 아닌 root의 pip을 사용하는 경우  [--user]는 빼셔도 됩니다.

여러 python을 user 계정에만 사용하는 법은 상단의 링크된 포스팅을 참조해 주세요

 

 

기본으로 python3.8을 사용하는 가상환경 tensor-env 생성

virtualenv [가상환경명]

환경변수에 적용이 되지 않은 경우, 명령어가 바로 실행이 안될 수도 있습니다.

source ~/.bashrc  or  터미널 재부팅후에는 사용 가능합니다.

 

원하는 python버전의 가상환경을 만들고 싶은경우

--python=[python의 경로]

virtualenv [가상환경명] --python=pythonx.x

기본으로 pythonx.x는 PATH에 추가되어 있어 저렇게만 쳐도 경로를 인식하나 

특수한경우에 PATH에 등록되지 않아 인식하지 못한다면, 직접 python이 있는 경로를 적어주세요.

 

 

가상환경에는 numpy가 설치되어 있지 않은 새로운 python3.8을 사용중

이렇게 생성한 가성환경을 directory 형태로 virtualenv명령을 사용한 위치에 생성됩니다.

저는 tensor-env라는 이름으로 생성했으므로 같은 명의 디렉토리가 생성되었습니다.

 

[가상환경 dir] / bin/ 위치에 있는 activate를 source 명령을 통해 가상환경으로 진입가능합니다.

source [가상환경 dir]/bin/activate

이제부터 사용하는 pip , pip3 , python , python3 , python3.8는 모두 가상환경의 bin에 있는 file로 실행됩니다.

가상환경의 pip을 통해서 가상환경에만 해당하는 패키지들을 설치 할 수 있습니다.

 

[가상환경 dir]/bin/pip3 install [패키지]

[가상환경 dir]/bin/python

바로 위 예시처럼 직접 폴더안에 file을 직접 명시하여 실행시킬 시 source로 가상환경으로 진입을 하지 않더라도 가상환경의 python과 pip을 실행 할 수 있습니다.

deactivate     가상환경 종료

 

 

댓글