파이썬

파이참에서 도커 연결

박제권
회사에 젊은 피가 수혈되었다. 며칠 전 젊은 동료께서 “도커에 파이참 연결해서 코딩하고 있어요.” 라고 하시는데, 난 이거.. 전에 시도하다 잘 안되서 중단했었는데? 그래서, 여태 virtualenv 만 쓰고 있었는데? 한밤중에 윈도우즈 시스템 폴더에 DLL들을 하나씩 까보던 아이는 어디로 갔단 말인가. 먼 옛날을 생각하며, 다시한번 시도했고 성공했다. 이제 인터프리터는 서버랑 동일하게 도커에서 실행하고, 디버깅은 파이참에서 해주고 있다. 역시 이런거 할 때가 제일 재미있다. 작업 내용을 정리해둔다. 아래에 소스들은 깃헙에 있다. 1. 장고앱을 만든다.

장고 페어코딩 후

박제권
(문서 아래 쪽에 django annoying 관련 사항이 추가되었습니다. 2016.11.30) 어제 회사의 장고 전문가와 페어코딩을 했습니다. 어제 배운 것 중에 모델 매니저 관련 사항을 공유합니다. 장고에서 ORM 으로부터 레코드 하나를 가져오는 방법에는 get()과 filter().first()가 있습니다. 저는 아이디를 주고 레코드를 하나 가져오는 경우에는 get()을 부르는 것이 맞다고 생각해서 이런 식으로 코딩을 했습니다. class SomeView(View): def def(self, req, **kwargs): try: obj = MyObject.objects.get(key=key) except: obj = None 안타깝게도 get()은 해당키의 레코드가 없으면 exception을 올려주시네요.

오픈소스에 기여 - python mysql driver

박제권
한줄짜리 코드이지만, 장고에서도 추천하는 파이썬 mysql 드라이버에 기여했다. 파이썬 3.5에서 제대로 동작하는 mysql 드라이버가 없어서 한참동안이나 문제였는데, 2.7에서도 많이 쓰이던 pymysql 이 언젠가부터 3.5를 지원하기 시작했다. 프로덕션에도 도입하기로 하고 잘 사용하고 있었는데, stored procedure 에서 문자열을 인자로 주는 경우, 이 문자열에 한글을 넣으면 surrogates not allowed 라는 익셉션이 발생했다. 처음에는 def literal(self, o): s = self.escape(o, self.encoders) if not PY2 and isinstance(s, bytes): return s.decode('ascii', 'surrogateescape') return s 를

파이썬으로 풀어보는 수학 2 그래프

박제권
책은 뉴욕 기후 변화를 예제 데이터로 사용하네요. 우리는 서울에 사니까, 조금 바꿔보았습니다. 다음 그래프는 2000년 부터 2016년까지 매년 7월1일의 기온을 표시한 것입니다. 데이터는 기상자료개방포털에서 받았습니다. 나머지는 책을 참고해서 이리저리 바꿔보면 되는데, 그래프에 한글 표시를 위해서는 다음 코드가 필요했습니다. from matplotlib.pyplot import rc, plot, show, imshow, title, xlabel, ylabel, legend # 이걸해야 그래프에 한글이 잘나옵니다. rc('font',family='AppleGothic')</pre> 이어지는 코드는 다음과 같습니다. # 책에는 뉴욕의 평균온도가 예제로 나온다. 나는 서울로 해보았다. # # 소스 : https://data.

파이썬으로 풀어보는 수학

박제권
재미있어 보여서 샀는데, 64쪽의 예제가 동작을 안합니다. 문제가 된 환경은 맥OS X. x_numbers = [1,2,3] y_numbers = [2,4,6] from pylab import plot, show plot(x_numbers, y_numbers) show() 를 실행하면 화면에 그래프가 보일꺼라고 쓰여있지만, ImportError: No module named 'pylab' 라는 오류가 보입니다. pip install pylab 을 한 다음 실행해보면 ImportError: cannot import name 'plot' 이라고 합니다. 뒤져보니 from matplotlib.pyplot import plot, show, imshow 가 올바른 임포트 방법이라고 하네요. 그랬더니 이번에는 RuntimeError: Python is not installed as a framework.

장고 스터디 환경 python2,python3, pip virtualenv pyenv 등등등

박제권
virtualenv 만 쓸 수도 있다. http://tech.jinto.pe.kr/339 도 보시길. 오랜만에 장고쪽을 들여다보니, 파이썬3랑 파이썬2랑 섞여서 환경설정이 힘들었다. 그냥 파이썬3로 가면 속편하겠지만, 맥의 시스템에는 파이썬2가 설치되어있고, 함부로 삭제하면 안될것 같다. 게다가 오랜만에 장고를 다시 공부할 생각으로 검색하니 첫페이지에 나오는 한글 문서는 장고1.4에 맞춰져있다. 또 이녀석은 파이썬3을 지원하지 않는다. https://django-document-korean.readthedocs.org/en/old_master/intro/tutorial01.html 하지만, 만약에 어딘가에 납품하면서, “장고 버전은 좀 옛날꺼… 1.4예요” 라고 할수는 없으니…. 좀 복잡하네. 레일즈나 장고나. pyenv 일단 파이썬 버전간 스위칭을 위해서 pyenv 를 설치했다.