Microsoft MVP성태의 닷넷 이야기
스크립트: 11. 파이썬(Python) 윈도우 개발 환경 [링크 복사], [링크+제목 복사],
조회: 42185
글쓴 사람
정성태 (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)
; https://www.hanselman.com/blog/one-of-microsofts-bestkept-secrets-python-tools-for-visual-studio-ptvs
정성태
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/

--------------------------------

Created the Same API in .NET and Python — Which One Performs Better?
; https://python.plainenglish.io/created-the-same-api-in-net-and-python-which-one-performs-better-69ec4ce0f2ab

--------------------------------

tonybaloney/CSnakes
 - Embed Python in .NET
; https://github.com/tonybaloney/CSnakes
정성태

... 151  152  153  [154]  155  156  157  158  159  160  161  162  163  164  165  ...
NoWriterDateCnt.TitleFile(s)
1199정성태12/11/201128222VC++: 55. JNI DLL 컴파일 시 x86과 x64의 Export된 함수의 이름이 왜 다를까요? [2]파일 다운로드1
1198정성태12/9/201132031디버깅 기술: 45. Windbg 확장 DLL 만들기 (1) - 스레드를 강제 종료시키는 명령어 [2]파일 다운로드1
1197정성태12/9/201129804.NET Framework: 282. Shader 강좌와 함께 배워보는 XNA Framework (2) - RenderMonkey의 Shader/Model 파일 연동파일 다운로드2
1196정성태12/9/201132988.NET Framework: 281. Shader 강좌와 함께 배워보는 XNA Framework (1) - 기초 프로그램 구조 [3]파일 다운로드2
1195정성태12/8/201147661오류 유형: 143. DXSDK_Jun10.exe 설치 시 "Error Code: S1023" 오류 해결하는 방법 [4]
1194정성태12/8/201135429개발 환경 구성: 137. Visual C++ 런타임 구성요소에 대한 디버그 버전 설치하는 방법
1193정성태12/8/201122542오류 유형: 142. Windows Phone SDK 7.1 설치 시 Expression Blend 제거를 요구하는 경우
1192정성태12/8/201125559개발 환경 구성: 136. Windows 7 SP1의 IIS에서 사용자 프로파일을 로드하는 방법
1191정성태12/6/201126634.NET Framework: 280. MVC3에서 JavaScriptSerializer 재정의하는 방법파일 다운로드1
1190정성태12/6/201129835오류 유형: 141. Visual C++ 컴파일 오류 - error C2275: 'xxxxx' : illegal use of this type as an expression [1]
1189정성태12/6/201136856VS.NET IDE: 70. Visual Studio에서 프로젝트 로드가 안된다면?
1188정성태12/3/201125971개발 환경 구성: 135. 마이크로소프트 TFS 호스팅 서비스 - Preview [3]
1187정성태12/2/201130617개발 환경 구성: 134. Robocopy 오류 및 종료 코드
1186정성태12/1/201132469.NET Framework: 279. WPF - 그리기 성능 및 Blurring 문제파일 다운로드1
1185정성태11/29/201123261.NET Framework: 278. WPF - Content의 Changed 이벤트에 해당하는게 뭔가요?파일 다운로드1
1184정성태11/29/201125992.NET Framework: 277. F#과 WPF가 어울리지 못하는 근본적인 이유 [2]
1183정성태11/26/201121571오류 유형: 140. Visual Studio 2010 - Floating된 에디트 윈도우가 사라지지 않는 경우 [2]
1182정성태11/25/201157280.NET Framework: 276. 중복 없는 숫자를 랜덤으로 배열하는 방법 [5]파일 다운로드1
1181정성태11/24/201127751디버깅 기술: 44. windbg의 mscordacwks DLL 로드 문제
1180정성태11/23/201137557.NET Framework: 275. 레지스트리 등록 및 Interop DLL 없이 COM 개체 사용하는 방법 [2]파일 다운로드1
1179정성태11/22/201128148.NET Framework: 274. ReaderWriterLockSlim은 언제 쓰는 걸까요? [4]파일 다운로드1
1178정성태11/19/201124621.NET Framework: 273. 설치된 .NET 버전에 민감한 코드를 포함하는 경우, 다중으로 어셈블리를 만들어야 할까요?파일 다운로드1
1177정성태11/18/201129883.NET Framework: 272. 소켓 연결 시간 제한 - 두 번째 이야기 [1]파일 다운로드1
1176정성태11/17/201129084.NET Framework: 271. C#에서 확인해 보는 관리 힙의 인스턴스 구조 [3]파일 다운로드1
1175정성태11/16/201127092.NET Framework: 270. .NET 참조 개체 인스턴스의 Object Header를 확인하는 방법 [1]파일 다운로드1
1174정성태11/15/201126521.NET Framework: 269. 일반 참조형의 기본 메모리 소비는 얼마나 될까요? [4]
... 151  152  153  [154]  155  156  157  158  159  160  161  162  163  164  165  ...