이콜레모 개발자 위키

Page history of 파이썬



Title: 파이썬 | edited by Youngrok Pak at 10 years, 10 months ago.

<h2>패키징</h2>
<p><a href="http://pythonhosted.org/an_example_pypi_project/setuptools.html">http://pythonhosted.org/an_example_pypi_project/setuptools.html</a></p>
<p>setuptools의 기본적인 사용법</p>
<h2>한글</h2>
<ul>
<li><a href="http://pythonhosted.org/korean/">korean</a> gettext의 한글 특이사항 반영, 초성 분리 등</li>
<li><a href="http://pythonhosted.org/hangulize/">hangulize</a> 외국어의 한글 발음</li>
</ul>
<h2>파이썬 개발 도구</h2>
<p>자동 완성, 소스 찾아가기 등의 문법 지원 기능을 제대로 쓸 수 있는 IDE는 이클립스 pydev와 PyCharm 둘 뿐이다. 이외에는 자동완성을 흉내만 낼 뿐 제대로 되지 않으므로, IDE가 필요하면 다른 것은 살펴볼 필요도 없고 pydev와 PyCharm 중에 고르면 된다.</p>
<p>문법 지원은 필요 없고 문법 강조(Syntax Highlight)만 잘 되어도 된다면 선택의 폭은 훨씬 넓다. vi도 충분히 괜찮고, sublime text도 멀티플랫폼을 잘 지원하고 속도가 엄청나게 빠르기 때문에 가장 추천할 만하다.</p>
<h2>XML &amp; HTML</h2>
<p>현재 <a href="파이썬">파이썬</a>에서 XML 처리의 <a href="de facto standard">de facto standard</a>가 되어가고 있는 것은 <a href="http://lxml.de/">lxml</a>이다. <a href="http://www.xmlsoft.org/">libxml2</a>에 기반하고 있어 다른 XML 라이브러리에 비해 압도적으로 성능이 좋고,&nbsp;<a href="XPath">XPath</a>, <a href="CSS selector">CSS selector</a> 쿼리 등의 지원도 좋다. 다만, XML을 <a href="pythonic">pythonic</a>하게 재해석한 <a href="http://docs.python.org/2/library/xml.etree.elementtree.html">ElementTree</a>의 문법을 사용하는데, 장단점이 있다. <a href="파이썬에서 XML과 HTML 다루기">파이썬에서 XML과 HTML 다루기</a>를 참조하라.</p>
<p>XML 표준 DOM API를 쓰고 싶다면 dom의 기본 구현체인 <a href="http://docs.python.org/2/library/xml.dom.minidom.html">minidom</a>을 쓰면 된다. <a href="http://docs.python.org/2/library/xml.dom.minidom.html">minidom</a>에서&nbsp;<a href="XPath">XPath</a>를 쓰려면&nbsp;<a href="http://code.google.com/p/py-dom-xpath/">py-dom-xpath</a>을 사용한다. css query는 직접 지원하지는 않고 <a href="http://pythonhosted.org/cssselect/">cssselect</a>로 <a href="XPath">XPath</a> 문법으로 변환한 후 사용하면 된다. <a href="http://lxml.de/">lxml</a>의 xpath는 <a href="http://www.xmlsoft.org/">libxml2</a>의 C 구현체를 사용하므로 속도가빠르지만 <a href="http://code.google.com/p/py-dom-xpath/">py-dom-xpath</a>은 성능이 그리 좋지 않다.</p>
<p>HTML의 경우는 <a href="http://docs.python.org/2/library/xml.dom.minidom.html">minidom</a>의 파서나 <a href="http://lxml.de/">lxml</a>의 html 파서나 둘다 <a href="HTML5">HTML5</a> 문서를 XML 파서처럼 파싱하므로 브라우저가 파싱하는 것과 차이가 있다. <a href="https://github.com/html5lib/html5lib-python">html5lib</a>는 최신 브라우저와 같은 로직으로 HTML을 파싱하며 파싱 결과의 treebuilder로 <a href="http://docs.python.org/2/library/xml.etree.elementtree.html">ElementTree</a>, <a href="http://lxml.de/">lxml</a>, <a href="http://docs.python.org/2/library/xml.dom.minidom.html">minidom</a>을 모두 사용할 수 있다. 순수 파이썬으로 작성되어 성능은 느리다.</p>
<p>HTML을 대충 쉽게 처리하고 싶을 때는 <a href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a>이 편리하다. 다만, 오랫동안 쓰여왔던 3.x 버전과 최신 버전인 4.x 사이에 차이가 약간 있어서 구글링한 참조 코드들이 그대로 동작하지 않을 수도 있다. PyPI 패키지명도 달라서 3.x는 <code>BeautifulSoup</code>이고 4.x는 <code>beautifulsoup4</code>다. <a href="https://github.com/html5lib/html5lib-python">html5lib</a>이 파싱을 제공하고 트리빌더를 선택할 수 있는 것과 반대로 <a href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a>은 파서를 선택할 수 있다. 예전에는 HTML을 <a href="pythonic">pythonic</a>하게 사용할 수 있는 라이브러리로 많이 쓰였으나, <a href="http://docs.python.org/2/library/xml.etree.elementtree.html">ElementTree</a>가 널리 쓰이면서 존재 이유가 사라져가고 있다.</p>
<p>이외에 <a href="jQuery">jQuery</a>처럼 쓰기 위한 도구로 <a href="http://pythonhosted.org/pyquery/">pyquery</a>를 비롯한 몇몇 도구가 있다. <a href="http://pythonhosted.org/pyquery/">pyquery</a>는 <a href="http://lxml.de/">lxml</a>을 사용하여 성능과 사용성 모두를 충족시킨 예라고 할 수 있다. 그러나&nbsp;<a href="jQuery">jQuery</a>가 필요할 정도로 HTML을 진지하게 다루어야 하는 경우는&nbsp;<a href="HTML5">HTML5</a>를 적절하게 다루지 못하는 <a href="http://lxml.de/">lxml</a>을 쓰기 애매해서 <a href="https://github.com/html5lib/html5lib-python">html5lib</a>을 파서로 쓰다보니 성능 이득을 그다지 누리지 못하는 경우가 많다.</p>
<p>&nbsp;</p>
Wiki at WikiNamu