레이블이 python인 게시물을 표시합니다. 모든 게시물 표시
레이블이 python인 게시물을 표시합니다. 모든 게시물 표시

2011-02-17

mac에서 gevent 설치하기

version
OS: 10.6.6
gevent: 0.13.3
libevent: 2.0.10-stable

일반적인 방법으로 설치하면 gevent를 import할 때 다음과 같은 에러가 뜬다.
ImportError: dlopen(gevent/core.so, 2): Symbol not found: _event_global_current_base_

다음과 같이 setting하여 빌드하여 성공하였다.

환경변수설정

gevent download
libevent download

export MACOSX_DEPLOYMENT_TARGET=10.5
export CC="gcc-4.0"
export LDFLAGS="-arch i386 -arch x86_64 -arch ppc -isysroot /Developer/SDKs/MacOSX10.6.sdk"
export CFLAGS="-Os -arch i386 -arch x86_64 -arch ppc -isysroot /Developer/SDKs/MacOSX10.6.sdk"
sudo python setup.py install --libevent ../

2008-11-12

urllib unicode handling

참고: http://mail.python.org/pipermail/python-dev/2008-May/079198.html

urllib의 urlopen이나 urlretrieve를 사용할 때 url안에 한글 코드가 들어가 있는 경우 정확하게 url을 encoding 해주지 않으면 Unicode Error가 발생한다.

한글이 들어간 url은 unicode이고 url은 ascii여야 하기 때문에 한글이 들어간 원 url은 'utf8'로 encoding되어야 하고 ascii가 아닌 문자들은 quote되어야 한다.

quote함수를 사용할 때 host part 부분은 escape되면 안되므로 escape되지 않아야 할 character에 '/', ':'를 지정한다.


url = u'http://localhost/test/한글message.html'
urllib.urlretrieve(urllib.quote(url.encode('utf8'), '/:'))


P.S. 이 간단한 코드를 test하는데 반나절이나 시간이 걸렸다. 위의 참고 page를 보면 알겠지만 python에서 unicode 문제는 고질적이라고 할 수 있다. python은 아직까지 default encoding이 ascii이기 때문에 unicode error는 어디서나 갑자기 튀어나오고, 이 문제는 unicode의 메카니즘에 대해 알고 있어도 쉽게 해결하기 어렵다. unicode error를 발생시킨 library 코드를 이해해야 하기 때문이다. python 3.0이 정식으로 나오면 이런 문제가 해결되기를 기대해 본다.

2008-10-29

pylons 0.9.7rc2 간단 help 오류

Using the Helpers 섹션에서
helper 코드가 작동하려면
lib/helpers.py에 다음 코드를 추가해야 함

from routes import url_for
from webhelpers.html.tags import *

그리고 예제도 다음과 같이 바뀌어야 함

${h.form(h.url_for(action='email'), method='get')}
Email Address: ${h.text('email')}
${h.submit('submit', 'Submit')}
${h.end_form()}

pylons에서 config 파일 (ini) 읽기

pylons.config['<항목명>'] 방식으로 접근 가능.

그런데 [server:main] 및 몇몇 필드 들은 읽히지 않는다 (예를 들어 use, full_stack 등)

2008-08-29

django 테스트

Django가 pylons을 대체하는 것이 좋을지 검토해보기 위해 django를 설치하고 tutorial을 따라가 보았다.

pylons은 turbogear와 통합되기 때문에 당연히 tg와 비교하는 것이 옳으나 tg는 잘 모르기 때문에 pylons과 비교하였다.

-- Django의 장점 --

- admin 기능
django가 신문사의 CMS용으로 만들어졌고 그래서 그 분야에 적합하다는 뜻을 이해할 수 있었다. CMS용이라면 별도의 코딩이 필요없을 정도로 특화되어 만들어진 것 같다.

- 도큐먼트
문서의 양과 질이 뛰어나다.

- 개발자 및 사용자 커뮤니티
많은 사용자들이 있고 로얄티도 좋다.
GvR의 고평가

-- Django의 단점 --

- SQLAlchemy와 같은 killer ORM을 default로 사용하지 않는다.

- 속성 접근과 같은 부분에서 __ (underbar 2개)와 같은 특이한 notation을 사용한다.
pythonic하지 않다.

- admin 기능에 CMS기능이 너무 통합되어 있다. General한 개발툴로서는 단점이다.

pylons을 버리고 django를 선택하는 것은 득보다 실이 많을 것으로 보인다. 특히 pylons과 turbogears가 통합되고 그 동안 알게 되었던 pylons + sqlalchemy의 경험을 버릴 정도로 django가 좋은지 모르겠다. 그리고 그동안 pylons의 document도 꽤 좋아졌고 tg2의 출시도 올해 안에 기대되기 때문이다.

2008-08-21

공짜 툴로 파이썬 확장모듈 컴파일하기

- mingw를 설치한다.
gcc-core
gcc-g++
binutils
runtime
utils

설치한 후 bin 폴더가 PATH에 포함되도록 수정한다
(My Computer ➛ Properties ➛ Advanced ➛ Environment Variables).


- default compiler로 mingw가 되도록 파이썬 설치폴더에서 disutils.cfg 를 수정한다.
c:\python25\lib\distutils\distutils.cfg
:

[build]
compiler = mingw32

- C extension을 사용하는 모듈 소스를 다운로드 하여 빌드해본다

PyCrypto 다운로드
파일을 폴더에 풀고
> python setup.py bdist_wininst

- 제대로 빌드되었는지 확인해본다

> objdump -p build/lib.win32-2.5/Crypto/Cipher/AES.pyd|grep DLL

원본URL: Building Python extensions for Windows with only free tools