본문 바로가기

CS+/설치

ubuntu anaconda (base) 자동 활성화 해제 , virtualenv 세팅

리눅스 ubuntu 18.04 기준으로 설명합니다.

 

anaconda를 설치하면 터미널을 열었을 때, (base) 라고 뜨면서 자동으로 anaconda 가 실행되버립니다. 

anaconda는 파이썬을 기반으로 한 데이터 사이언스를 위한 종합패키지들이 잘 들어있는 하나의 큰 패키지이자 환경 관리자 라고 생각합니다. anaconda는 python에서 가장 일반적인 데이터 과학 패키지들이 많이 들어가 있기에 '컴퓨터공학'을 전공하거나 하지 않고, 데이터분석이나 머신러닝 등을 공부할 때 '아나콘다'를 설치해서 많이 해결합니다. 

 

 

 

 

 

 

 

처음에는 편하지만, 나중에 '아나콘다'기반으로 작업 환경을 구축하거나 세팅해버리면 나중에 파이썬으로 개발을 할 때 조금 귀찮거나 번거로워 지는 일이 있습니다. 보통 파이썬 개발자들은 conda를 사용 안하고 virtualenv 를 사용하기 때문이죠. conda 에서 가상환경을 만들면 그 환경은 아나콘다 설치 폴더의 Scripts 에서 생성됩니다. 

 

venv(=virtualenv) 는 현재 폴더에 가상환경을 만들어주지만, 아나콘다는 가상환경을 아나콘다 설치 폴더의 envs 안에 생성되는 나중에 프로젝트 통합할 때 조금 번거로워질 수 있습니다. 그러니, (여기서부터는 제 사견입니다.) 머신러닝과 딥러닝, 데이터 분석만을 위해서 가상환경을 만들 때는 아나콘다를 사용해도 상관없지만 그게 아닌 파이썬으로 웹 개발 등을 할때는 venv 로 해야합니다. 저의 경우도 비전공자이고 아나콘다로 환경을 세팅하다보니 계속 아나콘다로 가상환경을 만들고 했었습니다. 하지만, 파이썬으로 웹 개발프로젝트나 이런 것과 통합하려면 venv 가 더 낫다고 생각하게 되었습니다. 

 

사설이 길었습니다. 

 

우선, 우분투에서 아나콘다를 설치하고 터미널을 열면, 아래와 같이 나옵니다. 

 

 

 

 

 

 

아래 명령어로 콘다 자동활성화를 멈춰주세요.

 

$ conda config --set auto_activate_base false

 

다시 자동으로 콘다가 실행되게 하려면 맨 뒤 값을 true 로 입력하면 됩니다. 

 

 

 

 

 

결과를 보겠습니다.

 

 

 

이제 (base) 가 나오지 않습니다. 즉, 콘다가 자동 활성화가 안됨을 알 수 있습니다. 

 

자, 그러면 콘다가 활성화 되어있을 때와 안되어있을 때 파이썬의 경로를 확인해보겠습니다. 

 

 

 

 

우분투 자체의 파이썬 경로와 아나콘다 활성화된 상태에서의 파이썬 경로

 

 

 

 

원래, 우분투를 설치하면 파이썬2와 파이썬3가 내장되어 있습니다. 

제가 알기로는 우분투 안에 파이썬으로 만들어진 게 많아서 라고 알고 있습니다.

자, 위 실행화면을 통해 콘다가 실행됐을 때와 안되어있을때 파이썬의 실행경로들이 다르게 작동됨을 확인할 수 있습니다. 

 

터미널을 열었을 때, 콘다가 자동 실행되는 이유는 .bashrc 에 콘다가 기본 path 에 잡혀버리기 때문입니다. 

 

 

 

 

 

$ vim .bashrc 

 

를 통해서 맨 아래에 내려가면 보통 위와같이 아나콘다의 path가 잡혀버립니다. 

아나콘다를 지워도 상관없겠지만, 굳이 지울 필요는 없을듯 하구요. 나중에 사용하게 될 수도 있으니깐요. 

 

자, 이제 virtualenv 를 설치하겠습니다.

이것도 콘다 활성화와 비활성화일 때 pip 위치를 한 번 보겠습니다. 

 

 

 

 

 

 

콘다가 비활성화되어 있다면 pip3 는 별도로 설치를 해주셔야 합니다. 

콘다 안에는 pip3 가 내장되어 있습니다. 

virtualenv 는 conda 비활성화시키고 나서 설치해주셔야 합니다. 

 

# pip3 installation 

$ sudo apt install python3-pip

 

# pip3 version check 

$ pip3 --version 

 

# install virtualenv via pip3.

$ pip3 install virtualenv

 

# virtualenvwrapper via pip3

$ pip3 install virtualenvwrapper

 

virtualenv 와 virtualenvwrapper 2가지를 모두 설치합니다. 

 

이후 bashrc 를 열어서 

$ vim .bashrc

 

아래 문장을 복붙합니다. 

#Virtualenvwrapper settings:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV=/home/user/.local/bin/virtualenv
source ~/.local/bin/virtualenvwrapper.sh

경로는 본인의 우분투 계정 이름에 맞게끔 수정하는거 잊지 마시구요. 

 

 

 

 

 

 

 

이 작업까지 해주고 터미널을 다시 열겠습니다.

 

 

 

 

 

 

위처럼 나오는 게 정상입니다.

(12월22일 어쩌구는 신경쓰지 마세요. bashrc 에서 스크립트에 엉뚱한 걸 넣어서 나오는겁니다 ㅎㅎ)

virtualenvwrapper 를 설치하고 path 까지 세팅해줘야 어느 경로에서는 venv 를 실행할 수 있습니다. 

 

 

설치가 잘되었다면 터미널을 열어서 

 

$ pip3 list 

 

커맨드를 입력하면 아래처럼 virtualenv 가 잘 설치된 걸 확인할 수 있습니다. 

 

 

 

 

이제 가상환경을 만들어보겠습니다. 

 

$ mkvirtualenv name_of_your_env

 

 

 

 

이 때, 가상환경은 .virtualenvs 디렉토리 안에 생깁니다. 그 이유는 아까 bashrc에서 설정할때 WORK_HOME 경로를 그렇게 해줬기 때문입니다. 

 

 

이제 터미널을 다시 열어서 workon 명령어를 사용해보겠습니다.

 

$ workon 가상환경이름 

 

 

 

이제 

 

# 가상환경 생성

$ mkvirtualenv name

 

# 가상환경 활성화 

$ workon name

 

# 가상환경 비활성화

$ deactivate 

 

#가상환경 삭제

$ rmvirtualenv name 

 

#가상환경 목록확인(=.virtualenvs 밑에있는 가상환경만 확인 가능)

$ lsvirtualenv

 

 

 

 

5가지를 잘 쓰시면 됩니다. 

 

* 특수 케이스 *

 

아래 명령어를 사용하면 가상환경이 만들어지는데 이는 로컬경로에 생성됩니다. (=.virtualenvs 경로 밑에 생기지 않습니다.)

삭제하려면 rmvirtualenv 를 써주면 되지만 virtualenvwrapper 를 설정하면서 이 명령어는 .virtualenvs 경로를 기본으로 하기에 did not found 됩니다. 아이콘이 보이니깐 그냥 클릭해서 삭제해주시면 됩니다. 

 

 

 

 

 

 

 

 

참고 

 

dojang.io/mod/page/view.php?id=2470

 

파이썬 코딩 도장: 47.11 가상환경 사용하기

파이썬을 사용하다 보면 pip로 패키지를 설치하게 되는데 이 패키지들은 파이썬 설치 폴더(디렉터리)의 Lib/site-packages 안에 저장됩니다. 그래서 pip로 설치한 패키지는 모든 파이썬 스크립트에서

dojang.io

 

www.freecodecamp.org/news/virtualenv-with-virtualenvwrapper-on-ubuntu-18-04/

 

How to Set Up Virtualenv with Virtualenvwrapper on Ubuntu 18.04

Let me tell you a story. Recently, I realized that I needed to review how to set up virtualenvwrapper on top of virtualenv in Ubuntu 18.04. I have completed this process several of times on different computers, and every time it seems to be just a little b

www.freecodecamp.org