Microsoft MVP성태의 닷넷 이야기
스크립트: 11. 파이썬(Python) 윈도우 개발 환경 [링크 복사], [링크+제목 복사],
조회: 35032
글쓴 사람
정성태 (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)
13141정성태10/17/20227004.NET Framework: 2058. [in,out] 배열을 C#에서 C/C++로 넘기는 방법 - 세 번째 이야기파일 다운로드1
13140정성태10/11/20226334C/C++: 159. C/C++ - 리눅스 환경에서 u16string 문자열을 출력하는 방법 [2]
13139정성태10/9/20226122.NET Framework: 2057. 리눅스 환경의 .NET Core 3/5+ 메모리 덤프로부터 모든 닷넷 모듈을 추출하는 방법파일 다운로드1
13138정성태10/8/20227455.NET Framework: 2056. C# - await 비동기 호출을 기대한 메서드가 동기로 호출되었을 때의 부작용 [1]
13137정성태10/8/20225794.NET Framework: 2055. 리눅스 환경의 .NET Core 3/5+ 메모리 덤프로부터 닷넷 모듈을 추출하는 방법
13136정성태10/7/20226363.NET Framework: 2054. .NET Core/5+ SDK 설치 없이 dotnet-dump 사용하는 방법
13135정성태10/5/20226627.NET Framework: 2053. 리눅스 환경의 .NET Core 3/5+ 메모리 덤프를 분석하는 방법 - 두 번째 이야기
13134정성태10/4/20225347오류 유형: 820. There is a problem with AMD Radeon RX 5600 XT device. For more information, search for 'graphics device driver error code 31'
13133정성태10/4/20225682Windows: 211. Windows - (commit이 아닌) reserved 메모리 사용량 확인 방법 [1]
13132정성태10/3/20225587스크립트: 42. 파이썬 - latexify-py 패키지 소개 - 함수를 mathjax 식으로 표현
13131정성태10/3/20228358.NET Framework: 2052. C# - Windows Forms의 데이터 바인딩 지원(DataBinding, DataSource) [2]파일 다운로드1
13130정성태9/28/20225291.NET Framework: 2051. .NET Core/5+ - 에러 로깅을 위한 Middleware가 동작하지 않는 경우파일 다운로드1
13129정성태9/27/20225610.NET Framework: 2050. .NET Core를 IIS에서 호스팅하는 경우 .NET Framework CLR이 함께 로드되는 환경
13128정성태9/23/20228257C/C++: 158. Visual C++ - IDL 구문 중 "unsigned long"을 인식하지 못하는 #import파일 다운로드1
13127정성태9/22/20226724Windows: 210. WSL에 systemd 도입
13126정성태9/15/20227361.NET Framework: 2049. C# 11 - 정적 메서드에 대한 delegate 처리 시 cache 적용
13125정성태9/14/20227563.NET Framework: 2048. C# 11 - 구조체 필드의 자동 초기화(auto-default structs)
13124정성태9/13/20227338.NET Framework: 2047. Golang, Python, C#에서의 CRC32 사용
13123정성태9/8/20227757.NET Framework: 2046. C# 11 - 멤버(속성/필드)에 지정할 수 있는 required 예약어 추가
13122정성태8/26/20227658.NET Framework: 2045. C# 11 - 메서드 매개 변수에 대한 nameof 지원
13121정성태8/23/20225564C/C++: 157. Golang - 구조체의 slice 필드를 Reflection을 이용해 변경하는 방법
13120정성태8/19/20227120Windows: 209. Windows NT Service에서 UI를 다루는 방법 [3]
13119정성태8/18/20226681.NET Framework: 2044. .NET Core/5+ 프로젝트에서 참조 DLL이 보관된 공통 디렉터리를 지정하는 방법
13118정성태8/18/20225513.NET Framework: 2043. WPF Color의 기본 색 영역은 (sRGB가 아닌) scRGB [2]
13117정성태8/17/20227726.NET Framework: 2042. C# 11 - 파일 범위 내에서 유효한 타입 정의 (File-local types)파일 다운로드1
13116정성태8/4/20228173.NET Framework: 2041. C# - Socket.Close 시 Socket.Receive 메서드에서 예외가 발생하는 문제파일 다운로드1
... 16  17  18  19  [20]  21  22  23  24  25  26  27  28  29  30  ...