Skip to main content

Posts

Showing posts with the label python

[Tip] Homebrew 로 설치한 Python 환경에서 GAE Flask 설치하기

2014.07.10 -- Issue -- ~/.pydistutils.cfg 파일을 생성하고 나서 pip install 을 할 경우, permission denied 오류가 발생하는 경우가 있다. 이때는 prefix= 를 삭제하면 정상적으로 설치할 수 있다. 또는, 설치시 아래와 같은 명령어로 설치한다. pip install --user --install-option="--prefix=" <package-name> -------------------------------------------------- Mac 에서 Homebrew 를 사용하면 각종 package 를 편리하게 관리 할수 있다. 그런데 Homebrew 를 통해 Python 을 설치한 환경에서, Google App Engine 의 Flask package 를 설치하기 위해 명령어 ( pip install -r requirements.txt -t lib/ )를 실행하면 아래와 같은 오류가 발생한다. 말 그대로 prefix 를 설정해 달라는 이야기 인데, 해결 방법은 다음과 같다. HOME(~/) 에 .pydistutils.cfg 파일을 생성하고 아래 코드를 추가한다. [install] prefix= 그리고 다시 실행하면 정상적으로 Flask package 가 설치되는것을 확인할 수 있다. Reference 1. stackoverflow http://stackoverflow.com/questions/24257803/distutilsoptionerror-must-supply-either-home-or-prefix-exec-prefix-not-both 2. Github Issue https://github.com/Homebrew/homebrew/wiki/Homebrew-and-Python

[Python] except, e or except as e?

python 2.x 에서 try-except 문을 활용할 때보면 다음과 같이 두가지 방법을 사용하고 있다. 1. try: pass except ErrorType, e: pass 2. try: pass except ErrorType as e: pass 두가지중 어느것을 써도 무방 하다고 한다. 다만 3.x 에서는 ErrorType as e 방식만을 허용한다고 하니 2.x 부터 습관을 들이는게 좋지 않을까. 그리고 가독성으로 보더라도 as e 방식이 이해도가 더 높다고 생각한다. 어느책에는 1번방식, 어느책에는 2번 방식으로 설명을 해 놓으니 더 어지럽다.ㅠ

[physics] Computational Science & Python

학부생때 처음 전산물리 과목을 수강하면서 "이건 도대채 어떻게 공부해야 하는가" 에 대해서 고민했던 기억이 난다. Java 가 먼지, 프로그래밍이 먼지도 모르는 학생들에게 1학기동안 swing 까지 나가는 살인적인 진도는 도저히 따라가기 힘들었다. programming 이란 무엇인가. 물리공부를 하는데 이게 왜 필요한가 에 대한 끝없는 반문. 학기가 끝날쯤에야 Java 를 한번 공부해보자 라는 생각이 들 정도였으니 성적은 말할것도 없다. 지금와서 생각해보면 전산물리 라는 과목에 Java 라는 언어는 상당히 부담스럽다는 생각이 든다. 과목의 목적이 원래 컴퓨터를 통한 물리실험으로 물리의 이해를 돕고자 하는 목적이 컸는데, 물리 실험을 하기 위해서는 Java  라는 프로그래밍 언어를 사용해야만 하는 (그것도 잘..) 어떻게보면 배보다 배꼽이 더 큰 상황이랄까. 특히 GUI 화면을 구현하고 EventHandling 을 사용하기 위해 Swing 을 사용하는 것은 지금와서 하라고해도 쉽게 하지 못할것 같다.(요즘  Swing 을 잘 안쓰기도하니까..) 그래도 우리과는 다행이라고 생각했던 것이..시중에 나와있는 책들을 보면 전산물리 관련 도서는 대부분  VB, C 를 기반으로 한다. 아마 VB 로 시작했다면 난 IT 분야는 생각도 안했을지 모른다. 최근 Python 을 공부하면서 전산물리를 Python 으로 배웠다면 과연 어땠을까? 라는 생각을 하게되었다. 개인적으로 물론 Java 도 멋진 언어이지만, 프로그래밍을 모르는 상태에서 전산물리를 가르쳐야 한다면, 그 언어는 Python 이 더 알맞은 언어라고 생각한다. 먼저 아래 두 코드를 한번 살펴보자. 아래 코드는 반지름이 0.2,0.5,1.5m 일때의 ElectricField 를 계산하고 있다. 1. Python (calc_electric_field.py) # -*- coding:utf-8 -*- import math r = [0.20, 0.50, 1.50...

[Mac] Python & tcl-tk install using homebrew

homebrew 에서 python 을 사용하면 brew linkapps 명령어를 통해 GUI 에서 IDLE 를 사용할 수 있다. 그런데 IDLE 를 실행하면 초기 화면에 경고 문구가 같이 출력된다. 큰 문제 안될수도 있지만, IDLE 에서 한글입력이 안되는 문제도 있고 보기 싫으니까 이것저것 찾아보게된다. 역시 방법이 다 있었고, 해결책은 아래와 같다. 1. tcl-tk 설치. 먼저 homebrew 에서 tcl-tk 를 설치한다. >> brew install homebrew/dupes/tcl-tk 2. 기존에 설치되어 있던 python 을 삭제한다. >> brew uninstall python 3. brewed-tk 옵션의 python 을 다시 설치 한다. >> brew install python --with-brewed-tk 4. 다시 IDLE 링크를 걸어주면 끝. >> brew linkapps 그러면 아래 화면처럼 경고문고도 없어지고 한글도 잘 써진다. 굿!