본문 바로가기

#python

Ubuntu 14.04에 MariaDB 설치 및 python연결 Ubuntu 14.04에 Python과의 연동을 위해서 MariaDB를 설치 및 세팅을 하려는 과정에서 여러가지 오류들이 발생하는데 삽질을 한 부분들이 있어서 그부분들에 대해서 정리를 하고자 한다. 우선 MariaDB는 설치과정과 몇개의 모듈들을 제외하고는 MySQL과 비슷하다. 설치방법은 해당 링크 를 참조하자. 버전별로 설치 방법이 되어있다. 그럼 이제 설치를 완료 했다고 치고 삽질로 들어가 보자... 우선 우리는 MariaDB와 python을 연동 시킬 계획이니 MySQL-python을 설치해야 한다. pip install MySQL-python 설치가 잘되면 상관없는데 위에서 계속 말했든이 이 post는 삽질에 대한것이다. 그러니 삽질을 위한 오류가 발생을 해야한다. MySQL 인 경우에는 위의 .. 더보기
Python에서 Dropbox SDK를 빌드할때 발생하는 bug 해결책 Python에서 Dropbox sdk를 사용하는 app을 만들고 있는 와중에 py2app을 이용해서 빌드한 후 실행을 하면 테스트 과정중에서는 접하지 못했던 오류가 발생한다. NotImplementedError: resource_filename() only supported for .egg, not .zip 해결 방법을 찾아보다가 해당 링크에서 동일한 문제를 발견했다. 참조링크 (위 블로그의 작성자는 py2exe를 사용하였고 나같은 경우에는 py2app을 사용한 것이지만 어차피 distutils을 상속받아서 사용하기에 큰 차이점은 없다.) 참조링크의 방법을 이용해서 문제를 해결하였다. 프로그램의 오류가 발생하고 난 후에 osx에서 콘솔을 열면 프로그램 log 데이터들을 확인할 수 있는데 오류가 발생한 위.. 더보기
Python 에서 Dropbox SDK 이용하기 Python과 Dropbox 연동 했던 부분에 대한 기록을 남겨둔다. 우선 Dropbox의 개발자 사이트로 접속하면 dropbox api에 대한 문서 및 사용법에 대한 부분이 정리가 아주 잘 되어있다. OAuth 가이드의 설명 부분도 이미지를 이용한 방식이 보기도 좋고, (개인적 취향으로 다른 서비스들의 설명보다 보기 좋았음...) 우선 사용을 하려면 다른 서비스들과 마찬가지로 APP 등록을 해야한다. 앱 등록을 하려면 위의 화면과 같이 Drop-ins app, Dropbox SDK app 둘중에 선택을 해야하는데, python용 SDK 사용을 위해서는 Dropbox SDK를 사용해야 한다. 그리고 drop-ins는 웹, 모바일앱을 위한 용도로 사용하기에 좀더 최적화 된듯 하다. dropbox SDK를 .. 더보기
PyCrypto를 이용해서 AES방식으로 암호화 하기 Python에서 암호화를 위해서 사용한것을 잊어먹지 않기 위해서 작성합니다. Python 에서 AES 암호화를 위해서 Pypi 검색을 해보니 너무 많아서 어떤걸 사용해야 할지 모르겠다. 개인적으로 보기에 비교적 많이 사용된다고 느낀 PyCrypto, M2Crypto 두 가지 중에서 PyCrypto를 이용해서 개발했다. 어찌 보면 상관없지만 그냥 비교를 해놓은 글이 있어서 참조. Using PyCrypto instead of M2Crypto on Google App Engine 내가 참조하기 위해서 쓴 글이다 보니 코드 위주로만 작성한다. 우선 pip에서 PyCrypto를 설치해놨다고 생각하고 쓴다. 전체 코드 (링크를 참조해서 작성) # -*- coding: utf-8 -*- from Crypto.Cip.. 더보기
Python에서 I18N 적용하기 요즘 웹사이트나 프로그램들을 보면 다양한 언어를 지원하는 것을 많이 본다. 나도 개인적으로 진행중인 프로젝트에서 다국어를 지원해 보고자 시도했던 방법을 여기에 작성한다. 개발환경은 osx 10.9.5, python 2.7 이다. python에는 gettext라는 기본 모듈이 있다. 해당 모듈을 사용하면 비교적 간단하게 다국어의 지원이 가능하다. 우선 gettext를 test할 파일을 만들어 보자. 파일명은 gettext_test.py 로 정했다. # gettext_test.py import gettext t = gettext.translation('gettext_test', 'locale', languages=['ko'], fallback=True) _ = t... 더보기
Python 두가지 상속 방법의 차이점 python에서 상속의 경우 두가지 방법이 존재한다. 첫번째 방법 :super method를 이용한 방법 class ChildA(parent) : super(ChildA, self).__init__(args) 두번째 방법 : parent를 이용한 방법 class ChildB(parent) : parent.__init__(self, args) 이렇게 두가지의 방법이 있다. 인터넷을 찾아보니 이미 나와같은 궁금증을 올린 사람들이 있다. [링크] 더 찾아보니 한글로도 있다. [http://techbard.tistory.com/2930] 내용들을 다 참조해서 보았을때 ChildA의 상속방식의 경우 부모의 __init__ 메소드를 직접 참조하였기에 parent 클래스가 수정될 경우 해당클래스를 상속받는 모든 클래.. 더보기