[Ubuntu] Python 환경
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
특정 프로젝트 폴더로 들어가면 자동으로 개발 환경을 설정