Microsoft MVP성태의 닷넷 이야기
스크립트: 11. 파이썬(Python) 윈도우 개발 환경 [링크 복사], [링크+제목 복사]
조회: 34864
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

파이썬(Python) 윈도우 개발 환경


올해가 가기 전에 꼭 함수형 언어를 하나 정도 배우리라 마음먹었었는데, 이제 한번 시작해 봅니다. F# / Haskell 등의 언어로 고민을 해봤지만, 닷넷 개발자로서 다른 세상의 문을 열자는 의미로 F#은 포기하고, 기왕이면 막강한 Visual Studio를 활용할 수 있도록 Haskell보다는 IronPython을 시작하기로 했습니다. (아쉽게도, Python은 함수형이라기보다는 OOP 언어군요.)

우선, 다운로드는 다음의 경로에서 받을 수 있습니다.

IronPyhton
; http://ironpython.codeplex.com/releases/view/81726

Visual Studio를 사용하고 있다면 아래의 도구를 받아서 설치하면 IDE에 통합/개발할 수 있습니다.

Python integration for Visual Studio 2010
; http://pytools.codeplex.com/

설치가 완료되면, 다음과 같이 "새 프로젝트"로 등록된 것을 볼 수 있습니다.

ironpython_install_1.png

보시는 것처럼, "(닷넷의 개입이 없는) 순수 Python Application" 프로젝트 유형과, 닷넷과 연동할 수 있는 각종 IronPython 유형의 템플릿들이 제공되고 있습니다.

즉, (Mono 말고) 닷넷이 없는 리눅스 환경에서도 파이썬 프로그램을 실행하는 유형으로 개발을 하고 싶다면 그냥 "Python Application"으로 선택하면서 Visual Studio의 풍부한 개발환경을 만끽하면서 즐겁게 개발하실 수 있습니다.

현재, IronPython은 파이썬 2.7 정도를 제공하고 있다고 합니다. 재미있는 것은 Python 2.x와 3.x가 호환성이 떨어진다는 점인데요. 시중에 나와 있는 많은 책들이나 자료들, 파이썬 확장 모듈들이 아직까지는 상당부분 2.x로 제작된 것이 많다고 하니... 그런 부분은 고려를 하셔야 합니다.

참고로, 2.x와 3의 차이점은 다음의 문서에 잘 정리되어 있습니다.

What’s New in Python
; http://learn.activestate.com/activepython/3.2/python/whatsnew/index.html

이제, 닷넷 개발자로서의 매력을 한번 이야기 해볼까요? 아래의 글을 보시면 이해가 될 것입니다.

Integrating IronPython into your Applications
; http://www.codeproject.com/Articles/24420/Integrating-IronPython-into-your-Applications

윈폼에서 IronPython 활용 방법
; http://www.hoons.kr/board.aspx?name=cshaptip&mode=2&boardidx=12110

파이썬 스크립트로 닷넷 객체를 전달할 수도 있고, 파이썬 스크립트의 결과를 받아오는 것도 가능합니다. 허긴... ^^ 나중에 Roslyn이 나오면 파이썬 스크립트보다는 C# 스크립트가 더 쉽게 다가올 수도 있겠군요.

Roslyn 맛보기 - C# 소스 코드를 스크립트처럼 다루는 방법
; https://www.sysnet.pe.kr/2/0/1153

그 외에도, IronPython은 닷넷 개발자들에게 다른 세상으로의 출입구를 제공하는 역할도 합니다. 익숙한 Visual Studio 개발 환경에서 '순수 Python' 응용 프로그램을 개발하고 리눅스에 배포하는 것은 분명 또 다른 즐거움이 될 수 있으니까요. ^^




파이썬을 배우는 데 꼭 IronPython일 필요는 없습니다. ActiveState에서 내놓은 ActivePython을 이용해도 좋을 텐데요. 다운로드는 다음에서 받을 수 있습니다.

ActivePython
; http://www.activestate.com/activepython

확장 모듈을 편리하게 설치할 수 있는 pypm도 제공하는데요. 이에 대해서는 다음의 글을 참고하시고.

pypm - ActivePython User Guide
; http://learn.activestate.com/activepython/2.6/pypm.html#what-is-pypm

ActivePython이 현재 IronPython보다 좋은 이유라면, 바로 Python 3의 문법을 지원하는 버전이 제공된다는 것입니다.

ActivePython 3 from ActiveState
; http://www.activestate.com/activepython-3

게다가 ActivePython은 설치 시 .py 확장자에 대해 python.exe를 기본 실행 파일로 레지스트리에 등록을 해주어서 윈도우 탐색기에서 더블 클릭하거나, 명령행에서 'test.py'라고 파일명을 치는 것만으로 실행을 가능하게 해줍니다.

그래서, 제 경우에는 IronPython도 설치하고 ActivePython도 설치해 두었습니다.




Visual Studio에서 파이썬을 공부할 때 "Ctrl + F5(Run)" 키로 실행하면 콘솔 화면이 나타났다가는 금방 사라지므로 결과 확인이 잘 안 됩니다. 이를 위해 다시 옆에다 cmd 창 하나 띄워놓고 .py 파일을 실행해야 하는데요.

그렇게 왔다갔다 하는 것이 좀 불편하지요. ^^ 따라서, 다음과 같이 일부러 사용자로부터 입력을 받는 부분을 추가하는 것도 도움이 될 수 있습니다.

print "test"
raw_input ('Press any key to exit...')

이제 Visual Studio에서 "Ctrl + F5"로 실행하면 ^^ 잠시 대기해 줍니다. (물론, 실제 사용될 코드에서는 제거를 해주어야 겠지요. ^^)




그 외, Mac 사용자를 위해서 MacPython이 있는데요.

MacPython downloads
; http://homepages.cwi.nl/~jack/macpython/download.html

제가 지금 (소유하지 않고) 보유한 맥은 "Mac OS X 10.7.4" 버전이어서 "MacPython 2.3 for Panther addons installer"를 설치했는데요.

MacPython 2.3 for Panther addons installer
; http://homepages.cwi.nl/~jack/macpython/downloads/MacPython-Panther-2.3-2.dmg

설치 후, PythonIDE를 실행하면 윈도우가 뜨지 않고 하단의 아이콘 모음 바에 PythonIDE 아이콘이 둥둥 뜨더니만 이후의 동작이 없습니다.

혹시, 이 글을 읽으시는 분들 중에서 Mac에서 파이썬을 공부하고 있다면... 좋은 IDE 하나 소개해 주세요. ^^




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 1/26/2023]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2012-09-09 01시56분
[Lyn] 크로스플랫폼을 지원하는 PyCharm 을 추천합니다. http://www.jetbrains.com/pycharm/download/index.html
[guest]
2012-09-09 02시58분
"Lyn"님, 아쉽게도 유료군요. ^^ 제가 맥만 있다면 사서 해보겠지만, 아쉽게도 서브라서.
정성태
2012-09-10 12시56분
[Lyn] 아무래도... 이해관계가 얽힌애들이 잘만들어요 ^^;

트라이얼로 테스트 해 보시는건 어떨까요
[guest]
2012-09-10 01시21분
^^ 그러게요. 아무래도.
정성태
2013-07-02 12시03분
One of Microsoft's Best-Kept Secrets - Python Tools for Visual Studio (PTVS)
; http://www.hanselman.com/blog/OneOfMicrosoftsBestKeptSecretsPythonToolsForVisualStudioPTVS.aspx
정성태
2013-10-30 02시38분
PTVS 2.0에서는 파이썬을 무료 Visual Studio Shell에도 통합시켜 놓아 유료 버전의 Visual Studio를 구매하지 않아도 됩니다.

Python Tools for Visual Studio v2.0
; http://channel9.msdn.com/coding4fun/blog/Python-Tools-for-Visual-Studio-v20
정성태
2023-01-26 10시20분
Pythonnet – A Simple Union of .NET Core and Python You’ll Love
; https://www.codeproject.com/Articles/5352648/Pythonnet-A-Simple-Union-of-NET-Core-and-Python-Yo

Bython 0.8 - Bython is a Python preprosessor which translates curly brackets into indentation.
; https://pypi.org/project/Bython/
정성태

1  2  3  4  5  6  7  8  9  10  11  [12]  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13321정성태4/14/20233734개발 환경 구성: 676. WSL/Linux Octave - Python 스크립트 연동
13320정성태4/13/20233739개발 환경 구성: 675. Windows Octave 8.1.0 - Python 스크립트 연동
13319정성태4/12/20234180개발 환경 구성: 674. WSL 2 환경에서 GNU Octave 설치
13318정성태4/11/20233989개발 환경 구성: 673. JetBrains IDE에서 "Squash Commits..." 메뉴가 비활성화된 경우
13317정성태4/11/20234145오류 유형: 855. WSL 2 Ubuntu 20.04 - error: cannot communicate with server: Post http://localhost/v2/snaps/...
13316정성태4/10/20233472오류 유형: 854. docker-compose 시 "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)" 오류 발생
13315정성태4/10/20233667Windows: 245. Win32 - 시간 만료를 갖는 컨텍스트 메뉴와 윈도우 메시지의 영역별 정의파일 다운로드1
13314정성태4/9/20233743개발 환경 구성: 672. DosBox를 이용한 Turbo C, Windows 3.1 설치
13313정성태4/9/20233835개발 환경 구성: 671. Hyper-V VM에 Turbo C 2.0 설치 [2]
13312정성태4/8/20233821Windows: 244. Win32 - 시간 만료를 갖는 MessageBox 대화창 구현 (개선된 버전)파일 다운로드1
13311정성태4/7/20234311C/C++: 163. Visual Studio 2022 - DirectShow 예제 컴파일(WAV Dest)
13310정성태4/6/20233879C/C++: 162. Visual Studio - /NODEFAULTLIB 옵션 설정 후 수동으로 추가해야 할 library
13309정성태4/5/20234034.NET Framework: 2107. .NET 6+ FileStream의 구조 변화
13308정성태4/4/20233924스크립트: 47. 파이썬의 time.time() 실숫값을 GoLang / C#에서 사용하는 방법
13307정성태4/4/20233719.NET Framework: 2106. C# - .NET Core/5+ 환경의 Windows Forms 응용 프로그램에서 HINSTANCE 구하는 방법
13306정성태4/3/20233567Windows: 243. Win32 - 윈도우(cbWndExtra) 및 윈도우 클래스(cbClsExtra) 저장소 사용 방법
13305정성태4/1/20233906Windows: 242. Win32 - 시간 만료를 갖는 MessageBox 대화창 구현 (쉬운 버전)파일 다운로드1
13304정성태3/31/20234263VS.NET IDE: 181. Visual Studio - C/C++ 프로젝트에 application manifest 적용하는 방법
13303정성태3/30/20233564Windows: 241. 환경 변수 %PATH%에 DLL을 찾는 규칙
13302정성태3/30/20234181Windows: 240. RDP 환경에서 바뀌는 %TEMP% 디렉터리 경로
13301정성태3/29/20234319Windows: 239. C/C++ - Windows 10 Version 1607부터 지원하는 /DEPENDENTLOADFLAG 옵션파일 다운로드1
13300정성태3/28/20233949Windows: 238. Win32 - Modal UI 창에 올바른 Owner(HWND)를 설정해야 하는 이유
13299정성태3/27/20233736Windows: 237. Win32 - 모든 메시지 루프를 탈출하는 WM_QUIT 메시지
13298정성태3/27/20233675Windows: 236. Win32 - MessageBeep 소리가 안 들린다면?
13297정성태3/26/20234348Windows: 235. Win32 - Code Modal과 UI Modal
13296정성태3/25/20233691Windows: 234. IsDialogMessage와 협업하는 WM_GETDLGCODE Win32 메시지 [1]파일 다운로드1
1  2  3  4  5  6  7  8  9  10  11  [12]  13  14  15  ...