[Ubuntu] Python 환경

Published onesixx on

https://gist.github.com/softwaredoug/a871647f53a0810c55ac
http://yevgnenll.me/archives/68
https://twpower.github.io/posts/
https://wayhome25.github.io/django/2017/04/29/python-dev-environments/
https://www.tensorflow.org/install/install_linux

python

0.현재 환경 확인 

python

Ubuntu에 이미 Python 설치되어 있음.

⇒ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
⇒ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

pip :: pypi (python package installer)  

PIP (Preferred Installer Program, Python의 팩키지 관리자)를 zsh의 경우 pip를 찾지 못하므로,  

⇒ pip --version
zsh: command not found: pip

그냥 PIP 설치하자 

⇒ sudo apt install python-pip
⇒ pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

 

⇒ sudo apt install python3-pip
⇒ pip3 --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

Virtual Environments

1. Pyenv

  • “Simple Python Version Management”
  • 여러 python 버전 로컬에 설치가능 =>   버전별 의존성 해결

설치 

필요 Package 미리 설치

pyenv/wiki/Common-build-problems, Build관련해서 문제가 생길 때 설치해야 할 패키지

$ 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

Cloning

git에서 pyenv 를 설치할 곳 ( ~/.pyenv)에 Check out 

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
Cloning into '/Users/onesixx/.pyenv'...
...
Checking connectivity... done.

환경변수 

zsh 설정파일  ~/.zshenv대신에 ~/.zshrc 수정

1. 환경변수  PYENV_ROOT 를 정의한다.

export DEFAULT_PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PYENV_ROOT=$HOME/.pyenv

2.  Path에  PYENV_ROOT내의  pyenv reop가 복사된 경로 지정 추가 (pyenv 명령어를 사용할수 있도록). 
    $PYENV_ROOT/bin 추가 

export PATH=$PYENV_ROOT/bin:$DEFAULT_PATH

3.  shims and autocompletion  활성화를 위해 pyenv init  추가
      eval “$(pyenv init -)”

if which pyenv > /dev/null;                 then eval "$(pyenv init -)"; fi
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi<br>

4. 적용 

source ~/.zshrc

<참고>

echo "sixx zshrc"

export CLICOLOR=1
export DEFAULT_PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PYENV_ROOT=$HOME/.pyenv
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH:$PYENV_ROOT/bin:
export PATH=$PYENV_ROOT/bin:$PYENV_ROOT/shims:/opt/X11/bin:$DEFAULT_PATH:$PATH

export PYENV_VIRTUALENV_DISABLE_PROMPT=1
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

 

필요 python version 설치

pyenv에 설치된 python version들은 pyenv versions를 통해서 확인 가능합니다.

설치가능 버전확인

⇒ pyenv install --list 

설치

ex> python 3.6.1 버전 설치  

⇒ pyenv install 3.6.1
Downloading Python-3.1.1.tar.xz...
Installed Python-3.6.1 to /Users/onesixx/.pyenv/versions/3.5.3

설치후 확인

⇒ pyenv versions

error 가 있으면,  https://github.com/yyuu/pyenv/wiki/Common-build-problems. 사이트 참고

  • Install the stuff with sudo.
  • pyenv install again, and it should work.
  • Switch the python version with pyenv global 2.7.8.

삭제하고 싶은경우

⇒ rm -rf ~/.pyenv/versions/3.6.1

기본 버전 설정

⇒ pyenv global 3.6.1

<참고>

~|⇒ pyenv versions
  system
  2.7.13
* 3.6.1 (set by /Users/onesixx/.pyenv/version)
  3.6.1/envs/tensorflowProject
  tensorflowProject

~|⇒ pyenv global tensorflowProject
(tensorflowProject) ~|⇒ pyenv versions
  system
  2.7.13
  3.6.1
  3.6.1/envs/tensorflowProject
* tensorflowProject (set by /Users/onesixx/.pyenv/version)

(tensorflowProject) ~|⇒ python --version
Python 3.6.1

(tensorflowProject) ~|⇒ which python
/Users/onesixx/.pyenv/shims/python

 

2. pyenv-virtualenv 설치

  • “Virtual Python Environment builder”
  • global Python version 을 변경
  • 로컬에 여러 python 가상환경을 구축을 가능하게 하여,  (pip로 설치하는) 팩키지별  의존성 해결

설치

Cloning

git에서 ~/.pyenv/plugins/ 폴더안에 pyenv-virtualenv  wrapper이름으로 직접 clone을 합니다.

$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

환경변수 

eval "$(pyenv virtualenv-init -)"

Virtual environmnet  생성

가상환경 생성

$ pyenv virtualenv [python version] [virtual environment name]

$ pyenv virtualenv 3.5.3 project01

가상환경 실행

pyenv activate [virtual environment name]

(Virtual 환경명) $ pyenv activate proejct01

가상환경 종료

일일이 source virtualenv_path/bin/activate를 할 필요도 없고, system의 python버전을 신경 쓸 필요도 없다.

$ pyenv deactivate

가상환경 목록

(tensorflowProject) ~|⇒ pyenv virtualenvs
  3.6.1/envs/tensorflowProject (created from /Users/onesixx/.pyenv/versions/3.6.1)
* tensorflowProject (created from /Users/onesixx/.pyenv/versions/3.6.1)

가상환경 삭제하기

$ pyenv uninstall {환경명}

3. autoenv

특정 프로젝트 폴더로 들어가면 자동으로 개발 환경을 설정

 

Categories: python

onesixx

Blog Owner

Leave a Reply

Your email address will not be published.