Microsoft MVP성태의 닷넷 이야기
스크립트: 11. 파이썬(Python) 윈도우 개발 환경 [링크 복사], [링크+제목 복사],
조회: 35036
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)
(시리즈 글이 4개 있습니다.)
스크립트: 11. 파이썬(Python) 윈도우 개발 환경
; https://www.sysnet.pe.kr/2/0/1343

닷넷: 2245. C# - IronPython을 이용한 파이썬 소스코드 연동
; https://www.sysnet.pe.kr/2/0/13603

닷넷: 2246. C# - Python.NET을 이용한 파이썬 소스코드 연동
; https://www.sysnet.pe.kr/2/0/13605

닷넷: 2255. C# 배열을 Numpy ndarray 배열과 상호 변환
; https://www.sysnet.pe.kr/2/0/13615




파이썬(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/
정성태

... 16  17  18  19  20  21  22  23  [24]  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
13040정성태4/27/20227393VC++: 156. 비주얼 스튜디오 - Linux C/C++ 프로젝트에서 openssl 링크하는 방법
13039정성태4/27/20228223.NET Framework: 1999. C# - Playwright를 이용한 간단한 브라우저 제어 실습
13038정성태4/26/20226006오류 유형: 806. twine 실행 시 ConfigParser.ParsingError: File contains parsing errors: /root/.pypirc
13037정성태4/25/20226423.NET Framework: 1998. Azure Functions를 사용한 간단한 실습
13036정성태4/24/20227203.NET Framework: 1997. C# - nano 시간을 가져오는 방법 [2]
13035정성태4/22/20227768Windows: 204. Windows 10부터 바뀐 QueryPerformanceFrequency, QueryPerformanceCounter
13034정성태4/21/20227094.NET Framework: 1996. C# XingAPI - 주식 종목에 따른 PBR, PER, ROE, ROA 구하는 방법(t3320, t8430 예제)파일 다운로드1
13033정성태4/18/20227663.NET Framework: 1195. C# - Thread.Yield와 Thread.Sleep(0)의 차이점(?)
13032정성태4/17/20227385오류 유형: 805. Github의 50MB 파일 크기 제한 - warning: GH001: Large files detected. You may want to try Git Large File Storage
13031정성태4/15/20226966.NET Framework: 1194. C# - IdealProcessor와 ProcessorAffinity의 차이점
13030정성태4/15/20226601오류 유형: 804. 정규 표현식 오류 - Quantifier {x,y} following nothing.
13029정성태4/14/20227027Windows: 203. iisreset 후에도 이전에 설정한 전역 환경 변수가 w3wp.exe에 적용되는 문제
13028정성태4/13/20226974.NET Framework: 1193. (appsettings.json처럼) web.config의 Debug/Release에 따른 설정 적용
13027정성태4/12/20227240.NET Framework: 1192. C# - 환경 변수의 변화를 알리는 WM_SETTINGCHANGE Win32 메시지 사용법파일 다운로드1
13026정성태4/11/20228786.NET Framework: 1191. C 언어로 작성된 FFmpeg Examples의 C# 포팅 전체 소스 코드 [3]
13025정성태4/11/20228097.NET Framework: 1190. C# - ffmpeg(FFmpeg.AutoGen)를 이용한 vaapi_encode.c, vaapi_transcode.c 예제 포팅
13024정성태4/7/20226596.NET Framework: 1189. C# - 런타임 환경에 따라 달라진 AppDomain.GetCurrentThreadId 메서드
13023정성태4/6/20226906.NET Framework: 1188. C# - ffmpeg(FFmpeg.AutoGen)를 이용한 transcoding.c 예제 포팅 [3]
13022정성태3/31/20226838Windows: 202. 윈도우 11 업그레이드 - "PC Health Check"를 통과했지만 여전히 업그레이드가 안 되는 경우 해결책
13021정성태3/31/20227030Windows: 201. Windows - INF 파일을 이용한 장치 제거 방법
13020정성태3/30/20226787.NET Framework: 1187. RDP 접속 시 WPF UserControl의 Unloaded 이벤트 발생파일 다운로드1
13019정성태3/30/20226765.NET Framework: 1186. Win32 Message를 Code로부터 메시지 이름 자체를 구하고 싶다면?파일 다운로드1
13018정성태3/29/20227281.NET Framework: 1185. C# - Unsafe.AsPointer가 반환한 포인터는 pinning 상태일까요? [5]
13017정성태3/28/20227059.NET Framework: 1184. C# - GC Heap에 위치한 참조 개체의 주소를 알아내는 방법 - 두 번째 이야기 [3]
13016정성태3/27/20227963.NET Framework: 1183. C# 11에 추가된 ref 필드의 (우회) 구현 방법파일 다운로드1
13015정성태3/26/20229242.NET Framework: 1182. C# 11 - ref struct에 ref 필드를 허용 [1]
... 16  17  18  19  20  21  22  23  [24]  25  26  27  28  29  30  ...