728x90
반응형

예전에 Emacs로 python 통합 개발 환경을 구성하기 위해서 여러 라이브러리들을 설치해본 적이 있었다.

 

당시에는 ropemacs를 사용하여 다른 것보다도 자동 완성 기능을 할 수 있도록 했었다.

 

최근에 다시 Python으로 개발하면서 elpy라는 것이 좋아 보여 계속 사용하고 있다.

(setenv "PYTHONIOENCODING" "utf-8")
(setenv "LANG" "ko_KR.UTF-8")

(when (require 'elpy nil t)
  (elpy-enable))
(setq elpy-rpc-python-command "python2.7")
(setq elpy-rpc-backend "jedi")
(setq python-check-command "~/Library/Python/2.7/bin/flake8")
(add-hook 'python-mode-hook
          (lambda ()
            (setq-default indent-tabs-mode t)
            (setq-default tab-width 4)
            (setq-default py-indent-tabs-mode t)
            (add-to-list 'write-file-functions 'delete-trailing-whitespace)))

python3도 설치되어 있어 python2.7을 사용하도록 elpy-rpc-python-command를 설정했다.

 

flake8의 경우 2, 3에 각각 pip install --user flake8로 설치하고 python-check-command를 설정하여 사용하도록 했다.

 

참고 문헌

  1. Python Programming In Emacs

  2. Elpy manual

반응형
728x90
반응형

Emacs에서는 기본적으로 다른 에디터에서 많이 사용되는 기능 중에 하나인 한 줄을 위아래로 옮길 수 없다.

 

이를 사용하기 위해서 init.el에 다음을 추가하면 된다.

(defun move-line (n)
  "Move the current line up or down by N lines."
  (interactive "p")
  (setq col (current-column))
  (beginning-of-line) (setq start (point))
  (end-of-line) (forward-char) (setq end (point))
  (let ((line-text (delete-and-extract-region start end)))
    (forward-line n)
    (insert line-text)
    ;; restore point to original column in moved line
    (forward-line -1)
    (forward-char col)))

(defun move-line-up (n)
  "Move the current line up by N lines."
  (interactive "p")
  (move-line (if (null n) -1 (- n))))

(defun move-line-down (n)
  "Move the current line down by N lines."
  (interactive "p")
  (move-line (if (null n) 1 n)))

(global-set-key (kbd "M-<up>") 'move-line-up)
(global-set-key (kbd "M-<down>") 'move-line-down)

 

참고 문헌

  1. https://www.emacswiki.org/emacs/MoveLine

반응형
728x90
반응형

Emacs org-mode에서 테이블을 만들 때 한글이 들어가는 경우 테이블이 깨지는 경우가 발생한다.

 

이는 영어와 한글의 사이즈가 달라서 발생하는 문제로 폰트 크기를 설정해주면 해결할 수 있다.

(set-face-font 'default "Monaco-12")
(set-fontset-font "fontset-default" '(#x1100 . #xffdc)
                  '("AppleGothic" . "unicode-bmp"))
(setq face-font-rescale-alist '(("AppleGothic" . 1.2)))

기본 폰트로 Monaco를, 한글 폰트는 AppleGothic으로 설정했고 한글은 1.2배 크게 나오도록 설정했다.

 

위와 같이 하면 org-mode에서 테이블이 잘 나오는 것을 확인할 수 있다.

 

참고 문헌

  1. [Emacs] 24.x 버젼 한글 폰트 설정 & org-mode 의 한글 테이블 깨지지 않게 보이기

반응형
728x90
반응형

Django에서 일정 거리내의 데이터를 조회하려면 다음과 같은 API를 사용하면되는데 데이터베이스에 따라 사용할 수 있는 것이 제한되어 있다.

 

SpatiaLite를 이용하는 경우에 distance_gt, distance_gte, distance_lt, distance_lte는 사용 가능하지만 해당 데이터베이스에서는 직교 좌표계에서 두점 간의 거리를 계산하는 방식으로 하기에 위도, 경도를 직교 좌표계에 맞게 바꿔서 저장해야 한다.

x = R * cos(위도) * cos(경도)
y = R * cos(위도) * sin(경도)

R 은 지구 반경 근사치로 약 6,371Km이다.

 

위와 같은 식으로 변환한 뒤 조회를 하면 일정 반경 이내 혹은 이외의 데이터를 조회할 수 있다.

반응형

'Python' 카테고리의 다른 글

[Python] Django logging  (0) 2020.01.25
[Python] nginx + gunicorn + Django  (0) 2020.01.25
[Python] nginx + Django  (0) 2020.01.25

+ Recent posts