너의 개발 환경

../_images/33175624924_7febc46cc4_k_d.jpg

텍스트 에디터

일반적인 텍스트를 편집할 수 있다면 뭐든 파이썬 코드를 작성할 수 있습니다. 하지만 더 강력한 에디터를 사용하는 편이 당신의 인생에 도움이 될 것입니다.

Vim

Vim은 메뉴나 아이콘 대신 키보드 단축키를 사용하여 편집하는 텍스트 편집기입니다. Vim 편집기가 Python 개발을 돕기 위한 몇 가지 플러그인과 설정이 있습니다. Python에서만 개발할 경우, 시작은 들여쓰기 및 줄 바꿈의 기본 설정을 PEP 8 을 준수하는 값으로 설정하는 것입니다. 홈 디렉토리에서 .vimrc 라는 파일을 열고 다음 줄을 추가합니다.

set textwidth=79  " lines longer than 79 columns will be broken
set shiftwidth=4  " operation >> indents 4 columns; << unindents 4 columns
set tabstop=4     " a hard TAB displays as 4 columns
set expandtab     " insert spaces when hitting TABs
set softtabstop=4 " insert/delete 4 spaces when hitting a TAB/BACKSPACE
set shiftround    " round indent to multiple of 'shiftwidth'
set autoindent    " align the new line indent with the previous line

이 설정을 사용하면 79자 뒤에 새 줄을 삽입하고 들여쓰기를 탭당 4칸으로 설정합니다. 다른 언어에도 Vim을 사용하는 경우 Python 소스 파일에 대한 들여쓰기 설정을 처리하는 들여쓰기 플러그인이 있습니다.

또한 Vim 6.1에 포함된 구문 파일에 비해 향상된 몇 가지 기능을 제공하는 syntax 라는 편리한 구문 플러그인도 있습니다.

이러한 플러그인은 파이썬에서 개발할 수 있는 기본 환경을 제공합니다. Vim을 최대한 활용하려면 코드에서 구문 오류 및 PEP8 규정 준수를 지속적으로 확인해야 합니다. 다행히 pycodestylePyflakes 가 여러분을 위해 이러한 작업을 지속적으로 해줍니다. Vim이 +python 으로 컴파일된 경우 아주 유용한 플러그인을 사용하여 편집기에서 이러한 검사를 수행할 수도 있습니다.

PEP8를 확인하거나 Pyflake를 하기 위해서 vim-flake8 을 설치할 수 있습니다. 이걸로 Vim에서 원하는 모든 핫키나 동작에 Flake8 기능을 매핑할 수 있습니다. 플러그인은 화면 하단에 오류를 표시하고 해당 라인으로 쉽게 이동할 수 있는 기능을 제공합니다. 파일을 저장할 때마다 이 기능을 호출하는 것이 매우 편리합니다. 이렇게 하려면 다음 줄을 .vimrc:: 에 추가하십시오.

autocmd BufWritePost *.py call Flake8()

syntastic 을 이미 사용하고 있는 경우, 개발과 에러 및 경고 확인을 할 때 빠른 수정 창에서 파이플레이크가 돌아가도록 설정할 수 있습니다. 상태 표시줄의 상태 및 경고 메시지도 표시하는 예제 구성은 다음과 같습니다:

set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_auto_loc_list=1
let g:syntastic_loc_list_height=5

Python-mode

Python-mode 는 Vim에서 Python 코드로 작업하기 위한 복잡한 솔루션입니다. 그 기능은:

  • 비동기 파이썬 코드 체크. pylint, pyflakes, pycodestyle, mccabe 중 무엇을 사용하든 된다.
  • Rope(https://github.com/python-rope/rope)를 사용하여 코드 리팩토링과 자동 완성 기능
  • 빠른 파이썬 폴딩
  • Virtualenv 지원
  • 파이썬 문서 검색과 파이썬 코드 실행
  • pycodestyle 자동 에러 수정

그리고 더...

SuperTab

SuperTab 은 작은 Vim 플러그인입니다. <Tab> 키나 다른 커스터마이징 된 키로 코드 자동 완성을 편리하게 해줍니다.

Emacs

Emacs도 다른 강력한 텍스트 편집기이다. 완전히 프로그래밍할 수 있지만(Lisp) 올바르게 연결하는 것은 몇 가지 작업이 될 수 있습니다. 이미 Emacs 사용자라면 Emacs Wiki에서 Python Programming in Emacs 를 보세요.

  1. Emacs는 기본적으로 파이썬 모드가 있습니다.

TextMate

TextMate 는 Apple의 접근 방식을 텍스트 편집기의 세계로 가져옵니다. Unix의 기초와 GUI를 연결함으로써 TextMate는 전문 스크립터와 초보 사용자 모두에게 이익이 되는 두 세계의 장점을 모두 가져왔습니다.

Sublime Text

Sublime Text 는 코드, 마크업 그리고 작문을 위한 정교한 텍스트 에디터입니다.매끄러운 사용자 인터페이스, 뛰어난 기능 및 놀라운 성능을 즐기실 수 있습니다.

Sublime Text는 훌륭한 Python 코드 편집기이며, 플러그인 API에 Python을 사용합니다. 또한 다양한 플러그인을 가지고 있으며, 그 중 일부는 편집기 PEP8 검사 및 코드 "린트"를 가능하게 해줍니다.

Atom

Atom 은 21세기의 해킹 가능한 텍스트 에디터입니다. atom-shell 위에 구축되었으며, 우리가 좋아하는 에디터의 기능은 다 가지고 있습니다.

아톰은 웹 네이티브(HTML, CSS, JS)로 모듈식 설계와 쉬운 플러그인 개발에 초점을 맞추고 있다. 기본 패키지 제어와 수많은 패키지가 함께 제공됩니다. Python을 개발하려면 Linter <https://github.com/steelbrain/linter>`_와 을 함께 사용하기를 권장한다.

파이썬 (비주얼 스튜디오 코드에서)

Python for Visual Studio 는 비주얼 스튜디오 코드의 확장자이다. 이것은 Mac, Windows 및 Linux를 지원하는 무료이고 가볍고 오픈 소스인 코드 편집기입니다. Node.js 및 Python과 같은 오픈 소스 기술을 사용하여 구축되었으며, Intelisense(자동 완성), 로컬 및 원격 디버깅, 린트 등과 같은 강력한 기능을 갖추고 있습니다.

MIT 라이선스입니다.

여러 IDE

PyCharm / IntelliJ IDEA

PyCharm 은 IntelliJ IDEA로 잘 알려진 제트브레인에서 만들었습니다. 두 IDE는 같은 코드 베이스를 공유하고 있는지라 파이참의 많은 기능은 인텔리제이의 무료 플러그인`Python Plug-In <https://plugins.jetbrains.com/plugin/?idea&pluginId=631>`_ 에서 왔습니다. 파이참의 버전은 2개가 있습니다. 하나는 프로페셔널 에디션(30일 무료 체험)이고 하나는 커뮤니티 에디션(Apache 2.0 License)입니다. 커뮤니티 에디션은 기능이 더 적습니다.

Enthought Canopy

Enthought Canopy 는 과학자와 엔지니어를 주 사용자로 하는 파이썬 IDE입니다. 데이터 분석을 위한 라이브러리들이 미리 설치되어 있습니다.

Eclipse

파이썬 개발을 위한 가장 유명한 플러그인은 Aptana의 PyDev 입니다.

Komodo IDE

Komodo IDE 는 ActiveState에서 개발한 Windows, Mac, Linux에서 다 돌아가는 상용 IDE 입니다. KomodoEdit 는 이를 대체할 수 있는오픈소스입니다.

Spyder

Spyder 는 과학용 파이썬 라이브러리(이른바 SciPy) 를 돌리고자 특별히 만들어진 IDE입니다. pyflakes, pylintrope 와 통합환경을 제공합니다.

Spyder는 오픈소스(공짜)이고 코드자동완성, 신택스 하이라이팅, 클래스와 함수 브라우져, 객체 분석 기능이 있습니다.

WingIDE

WingIDE 는 파이썬 전용 IDE입니다. 리눅스, 윈도우즈, 맥(아쉽게도 X11 애플리케이션이라 맥 사용자를 환장하게 함)에서 돌아갑니다.

WingIDE의 기능에는 코드자동완성, 신택스 하이라이팅, 소스 브라우저, Graphical Debugging, 버전제어시스템 지원

NINJA-IDE

NINJA-IDE (재귀약어: "Ninja-IDE Is Not Just Another IDE" 에서 따왔다) 는 크로스 플랫폼 IDE이고, 파이썬 어플리케이션 개발을 위해 특별히 디자인되었으며 리눅스/X11과 Mac OS X 그리고 윈도우즈 데스크탑 OS에서 돌아갑니다. 웹사이트에서 각 플랫폼을 위한 인스톨러를 다운로드 받으세요.(역주: 20210409 현재 접속이 안되는데...)

NINJA-IDE 는 오픈소스(GPLv3 licence)이고 파이썬과 Qt로 개발되었습니다. 소스파일은 GitHub 에서 다운로드 받을 수 있습니다.

Eric (The Eric Python IDE)

Eric 은 모든 걸 갖춘 파이썬 IDE입니다. 소스코드 자동완성, 신택스 하이라이팅, 버전컨트롤시스템 지원, 파이썬3 지원, 웹브라우저와 연동, 파이썬 쉘, 통합 디버거, 유연한 플러그인 시스템 기능이 있습니다. Qt GUI 툴킷 위에서 파이선으로 개발되었으며 Scintilla 에디터를 사용합니다. Eric은 오픈소스 소프트웨어 프로젝트((GPLv3 licence)이고 10년 넘게 활발히 개발 중입니다.

Mu

Mu 는 파이썬 IDE의 미니멀리스트입니다. 파이썬3 코드를 로컬에서 돌릴 수 있고 BBC micro:bit(역주: https://microbit.org/)에 코드를 배포할 수 있으며 Adafruit 기판에 CircuitPython을 돌릴 수 있습니다. (역주: 모두 임베디드 환경이다)

파이썬 초보자를 위해 만들어졌기 때문에 mu는 기본적으로 파이썬3를 포함하고 있고 Windows, OS/X 그리고 Linux 중 어디에도 쉽게 설치할 수 있습니다. 라즈베리파이에서도 잘 돌아갑니다.

현재 지원 커뮤니티가 활동하고 있습니다.

인터프리터 도구

가상 환경

가상 환경은 프로젝트의 패키지 디펜던시를 격리할 수 있는 강력한 방법을 제공합니다. 특정 파이썬 프로젝트을 시스템 전역에 설치하지 않고 잠재적인 버전 오류를 피할 수 있다는 얘기입니다.

가상 환경에 대한 더 많은 정보와 사용을 위해서는: Virtual Environments 문서를 참조하세요.

pyenv

pyenv 는 여러 버전의 파이썬 인터프리터를 동시에 설치할 수 있게 해주는 도구입니다. 덕분에 다른 버전의 파이썬을 사용하는 각각의 프로젝트를 관리할 경우 발생하는 문제를 해결할 수 있습니다. 예를 들어 Python 3.4를 기본 인터프리터로 사용하면서 다른 한 프로젝트에서는 호환성을 위해 Python 2.7을 쉽게 설치할 수 있습니다.pyenv는 CPython 버전 뿐만 아니라 PyPy, Anaconda, miniconda, stackless, Jython 및 IronPython 인터프리터도 설치합니다.

pyenv는 shims 디렉토리를 파이썬 인터프리터의 fake 버전 (pip2to3 와 같은 다른 도구 포함)으로 채우는 방식으로 작동합니다. 이로서 다른 버전의 Python이 필요한 다른 프로젝트를 다루는 경우 발생하는 문제를 해결합니다.시스템이 python 이라는 프로그램을 찾을 때 먼저 shims 디렉토리 내부를 살펴보고 이 디렉토리에 들어있는 fake 버전을 사용하여 명령을 pyenv에 전달합니다.그런 다음 pyenv는 환경 변수, .python-version 파일 및 전역 기본값을 기반으로 실행해야하는 Python 버전을 결정합니다.

pyenv는 가상 환경을 관리하는 도구가 아닙니다. gkwlaks pyenv-virtualenv 플러그인이 다른 환경의 생성을 자동화해주고, pyenv 도구를 사용하여 환경변수와 .python-version 파일에 따라 다른 환경으로 전환할 수 있도록 해줍니다.

다른 도구들

IDLE

IDLE 통합개발환경은 는 파이썬 표준 배포판의 일부입니다. 완전히 Python으로 작성되었으며 Tkinter GUI 툴킷을 사용합니다. IDLE은 Python을 사용한 본격적인 개발에는 적합하지 않지만 작은 Python 스니펫을 사용해보고 Python의 다양한 기능을 실험하는 데에 아주 유용합니다.

IDLE의 기능은 다음과 같습니다:

  • 파이썬 쉘 윈도우(인터프리터)
  • 파이썬 코드의 색깔이 표시되는 멀티 윈도우 텍스트 에디터
  • 최소한의 디버깅 기능

IPython

IPython 은 파이썬을 대화식으로 사용할 수 있도록 도와주는 다양한 도구를 제공합니다. 주요 구성요소는 다음과 같습니다:

  • 강력한 파이썬 쉘(터미널 혹은 Qt 기반이야)
  • 웹 기반 노트북. 기능은 (역주: 쉘과) 동일하지만 rich 미디어, 텍스트, 코드, 수학 표현식, 인라인 플롯을 지원합니다.
  • 대화 형 데이터 시각화 및 GUI 툴킷 사용 지원
  • 자작 프로젝트에 로드 할 수있는 유연하고 임베디드 가능한 인터프리터
  • high 레벨의 대화형 병렬 컴퓨팅을 위한 도구
$ pip install ipython

노트북, qtconsole, 테스트 및 기타 기능에 대한 모든 선택적 디펜던시와 함께 IPython을 다운로드하고 설치하려면:

$ pip install ipython[all]

BPython

bpython 은 유사 유닉스 운영체제를 위한 파이썬 인터프리터 대체 인터페이스입니다. 다음 기능이 있습니다:

  • 인라인 구문 강조
  • Readline 처럼 입력할 때 제안이 표시되는 자동 완성
  • 파이썬 함수에 필요한 파라미터 목록 표시
  • "Rewind" 기능으로 메모리에서 코드의 마지막 라인을 읽어 재실행
  • pastebin(역주: 클립보드)에 입력한 코드를 보내기
  • 입력한 코드를 파일로 저장
  • 자동 인덴트
  • 파이썬3 지원
$ pip install bpython

ptpython

ptpythonprompt_toolkit 라이브러리 위의 REPL 빌드입니다. BPython 의 대안이 될 수 있습니다. 다음 기능이 있습니다.

  • 구문 강조
  • 자동 완성
  • 여러 줄 동시 수정
  • Emacs와 Vim 모드
  • REPL을 코드에 임베딩 할 수 있다
  • 신택스 유효성 검증
  • 탭으로 페이지 나누기
  • IPython 의 쉘을 통합하여 사용할 수 있다. IPython을 설치(pip install ipython)하고 ptipython 을 실행하면 된다.
$ pip install ptpython