2019년 1월 24일 목요일

virtualenvwrapper - python virtualenv 개발 환경

python virtualenv


독립된 python 환경을 만들고 activate / deactivate 과정으로 특정 환경으로 설정 및 해제

예)

$ virtualenv env
$ source env/bin/activate
(env) $ which python
~/env/bin/python
$ deactivate

virtualenvwrapper


원하는 virtualenv 환경으로 activate 와 deactivate 수행을 대신하여 emacs 종료 없이 virtualenv 를 바꿔가면서 작업할 수 있음

설치


Emacs package manager 이용


예)
M-x package-install RET virtualenvwrapper RET

설정


예)

(require 'virtualenvwrapper)
(venv-initialize-interactive-shells)
(venv-initialize-eshell)

(setq venv-location "/home/tj/env/")


필자의 경우 virtualenv 환경을 여럿 사용하고 있고 /home/tj/env 폴더에 여러 환경 폴더를 생성해서 사용하고 있기 때문에 여러 virtualenv 환경들이 있는 폴더를 지정하게 되면 virtualenvwrapper 가 해당 폴더 내에서 환경을 탐색해서 설정해 준다

virtualenv 환경 선택


예)

/home/tj/env/ 에 아래와 같이 virtualenv 환경 파일들을 생성했다면

~/env $ virtualenv --system-site-packages -p python2 python2
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/tj/env/python2/bin/python2
Also creating executable in /home/tj/env/python2/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
~/env $ virtualenv --system-site-packages -p python3 python3
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/tj/env/python3/bin/python3
Also creating executable in /home/tj/env/python3/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.




python2 환경으로 설정


M-x venv-workon RET python2 RET


eshell 에서 확인


M-x eshell RET
$ which python
/home/tj/env/python2/bin/python


python3 환경으로 설정


M-x venv-workon RET python3 RET
$ which python
/home/tj/env/python3/bin/python


설정 해제


M-x venv-deactivate RET



2019년 1월 23일 수요일

Package 설치 방법 + melpa 저장소 추가

emacs 25 버전 부터 package 관리 기능이 내장되었고 이전에 직접 emacs lisp 패키지를 다운받아 설치하고 설정하는 과정이 간단하게 바뀌었다

기본 저장소보다 melpa 저장소에 선택할 수 있는 package 들이 많아 melpa 저장소를 pakcage 저장소 목록에 추가하여 사용하고 있다

melpa 저장소




.emacs 추가


(require 'package)
(add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/") t)

(package-initialize)


Package 관리


M-x package-list-packages RET

  • i - 설치하려는 항목 선택
  • u - 선택 해제
  • d - 삭제하려는 항목 선택
  • U - upgrade 가능한 항목들 일괄 선택
  • x - 선택한 동작 일괄 실행


설치한 패키지 활성화


패키지 마다 설정 방법들이 다를 수 있으며 해당 패키지의 웹사이트에서 설정 방법이나 사용법을 숙지 할 수 있다

예) yasnippet 패키지

.eamcs 추가


(require 'yasnippet)
(yas-global-mode 1)