티스토리 뷰

개정판#1: 종료(Run/Stop)하면 제대로 종료가 안되는 문제, 그리고 디버깅이 안되는 문제를 고쳤음.

예전에 이클립스에서 google appengine (python)을 사용하기 위한 삽질기를 올렸었는데...
이번엔 혼자 좋아라 하는 넷빈즈다.  IMNSHO, 이클립스는 IDE로써는 이미 맛탱이가 갔다. 그냥 다른 대안이 없어서 쓸 뿐~ 3.4 까진 달나라였는데... 이젠 안드로메다를 넘어 아공간으로 날아가버린...-,.-;

미리 말해두는데, 이 글의 관심사는 Java가 아니고 Python이다. Google AppEngine for Java라면 꽤 쓸만한 플러그인이 이미 있다. 

아무튼 넷빈즈 6.0 이후로 비공식적으로 Python(Jython 포함)이 지원되는데... 이걸 이용하면 gnome-terminal + vim 만큼 손에 착 달라붙진 않지만, 몇가지 편리한 기능들이 있어서 아쉬운대로 쓸만하다. 이걸 AppEngine(Python) 개발에도 써먹어 볼려구 했더니... 문제가 좀 있어서 삽질이 필요하다.

1. 파이썬 2.5.x 설치
여기서는 c:\python25 로 설치했다고 치자.

여기서는 c:\google_appengine 에 설치했다고 치자.

3. 넷빈즈 설치
알아서들 잘 까시겠지만... 이클립스와는 달리 인스톨러가 있다. 자바까지 포함된 인스톨러도 있다. 우분투라면 apt-get install netbeans 해도 된다. 입맛대로 깔아보자.

이 글을 여기까지 본사람이라면 1,2,3은 이미 다 되어있겠지만... 그냥 써봤다. :p

Tools -> Plugins -> Available Plugins -> Python을 찾아서 체크한 다음 Install을 눌러주시면 된다. 직관적이다. 이클립스 P2인지 뭔지만큼 플렉서블하며 스케일러블하고 엘레강스하고 개떡같진 않지만, 나같은 촙오도 대충 하면 될 정도로 직관적이다. 참고로 Jython도 덩달아 설치된다. 리스타트하라고 겁주는데... 겁나니까 그냥 리스타트 하자.

5. 파이썬 런타임 등록
넷빈즈의 파이썬 플러그인은 아무말 안하면 Jython 런타임을 사용하지만, 앱엔진 개발을 위해선 Python 2.5.x가 필요하다. Tools -> Python Platforms -> New 해서 c:\python25 를 선택하면 대부분의 값은 자동으로 채워진다. Python Path 탭으로 가서 앱엔진 라이브러리들을 등록해주자:
  • c:\google_appengine\lib\antlr3
  • c:\google_appengine\lib\django
  • c:\google_appengine\lib\webob
  • c:\google_appengine\lib\yaml\lib <-- 요기 끝에 lib 한 번 더 있다. 오타 아님.

6. 파이썬 프로젝트 만들기
File -> New Project 에서 Categories를에서 Python을 고르면 두가지가 있다:
  • Python Project
  • Python Project with Existing Source
설명할 것도 없고, 제목 그대로다. 사용할 파이썬 런타임 물을 때(Python Platform... 얘네들 플랫폼 참 좋아한다) 미리 등록해둔 Python 2.5.x를 선택하자.

7. 넷빈즈 안에서 dev_appserver.py 실행하기
일반적인 파이썬 프로젝트라면 여기서 끝인데... 앱엔진 프로젝트는 난관이 하나 더 있다.

(현재로썬)넷빈즈용 파이썬 플러그인은 현재 프로젝트 밖에 있는 모듈을 메인 모듈로 지정할 수 없다...-,.-;;;

그래서 밖에서(명령 프롬프트, cmd, 터미널, 콘솔... 머라고 부르던...) 실행 해야하는데... 이래서야 IDE라고 할 수 없다. 그래서 삽질을 좀 했다:

#!/usr/bin/env python2.5

import sys
import os

if __name__ == '__main__':
    GAE_HOME = 'c:\google_appengine'
    script_dir = os.path.join(GAE_HOME, 'google', 'appengine', 'tools')
    script_path = os.path.join(script_dir, 'dev_appserver_main.py')

    sys.path.insert(0, GAE_HOME);
    sys.argv.append(os.path.dirname(__file__))

    execfile(script_path, globals())


파이썬 촙오가 짠 코드다 보니... 좀 보기 그렇지만.... -,.-;;; 문제에 집중하자! 집중! 이 녀석을 적당한 이름 (내 경우엔 _nb_dev_appserver.py라고 지었다)으로 저장해놓고 메인 모듈로 지정해주면 된다(최초 실행시 메인 모듈이 뭔지 물어본다)


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함