Microsoft MVP성태의 닷넷 이야기
스크립트: 11. 파이썬(Python) 윈도우 개발 환경 [링크 복사], [링크+제목 복사],
조회: 42074
글쓴 사람
정성태 (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
정성태

1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13693정성태7/24/20247233개발 환경 구성: 717. Visual Studio - C# 프로젝트에서 레지스트리에 등록하지 않은 COM 개체 참조 및 사용 방법파일 다운로드1
13692정성태7/24/20248010디버깅 기술: 199. Windbg - 리눅스에서 뜬 닷넷 응용 프로그램 덤프 파일에 포함된 DLL의 Export Directory 탐색
13691정성태7/23/20247369디버깅 기술: 198. Windbg - 스레드의 Win32 Message Queue 정보 조회
13690정성태7/23/20247005오류 유형: 919. Visual C++ 리눅스 프로젝트 - error : ‘u8’ was not declared in this scope
13689정성태7/22/20248498디버깅 기술: 197. Windbg - PE 포맷의 Export Directory 탐색
13688정성태7/21/20247615닷넷: 2281. C# - Lock / Wait 상태에서도 일부 Win32 메시지 처리파일 다운로드1
13687정성태7/19/20248045닷넷: 2280. C# - PostThreadMessage로 보낸 메시지를 Windows Forms에서 수신하는 방법파일 다운로드1
13686정성태7/19/20247842오류 유형: 918. Visual Studio - ATL Simple Object 추가 시 error C2065: 'IDR_...': undeclared identifier
13685정성태7/19/20247990스크립트: 66. Windows 디렉터리 경로를 WSL의 /mnt 포맷으로 구하는 방법 - 두 번째 이야기
13684정성태7/19/20248161닷넷: 2279. C# - 문자열 보간식 사례 (예: 조건 연산자 사용)
13683정성태7/18/20247637오류 유형: 917. ClrMD - Linux 환경의 .NET 5 덤프 분석 시 hang 현상
13682정성태7/18/20247854닷넷: 2278. WPF - 스레드에 종속되는 DependencyObject파일 다운로드1
13681정성태7/17/20247459닷넷: 2277. C# 13 - (2) 메서드 그룹의 자연 타입 개선 (메서드 추론 개선)파일 다운로드1
13680정성태7/16/20247819닷넷: 2276. C# - Method Group, Natural Type, function_type파일 다운로드1
13679정성태7/16/20246922Linux: 76. Linux - C++ (getaddrinfo 등을 담고 있는) libnss 정적 링크
13678정성태7/15/20247051VS.NET IDE: 191. Visual Studio 2022 - .NET 5 프로젝트를 Docker Support로 실행했을 때 오류
13677정성태7/15/20247128오류 유형: 916. MSBuild - CheckEolTargetFramework (warning NETSDK1138)
13676정성태7/14/20247314Linux: 75. gdb에서 glibc의 함수에 Breakpoint 걸기
13675정성태7/13/20249099C/C++: 166. C/C++ - DLL에서 template 함수를 export하는 방법 [1]파일 다운로드1
13674정성태7/13/20247984오류 유형: 915. Unhandled Exception: Microsoft.Diagnostics.NETCore.Client.ServerNotAvailableException: Unable to connect to Process
13673정성태7/11/20248425닷넷: 2275. C# 13 - (1) 신규 이스케이프 시퀀스 '\e'파일 다운로드1
13672정성태7/10/20247142닷넷: 2274. IIS - (프로세스 종료 없는) AppDomain Recycle
13671정성태7/10/20247248오류 유형: 914. Package ca-certificates is not installed.
13669정성태7/9/20247366오류 유형: 913. C# - AOT StaticExecutable 정적 링킹 시 빌드 오류
13668정성태7/8/20247381개발 환경 구성: 716. Hyper-V - Ubuntu 22.04 Generation 2 유형의 VM 설치
13667정성태7/7/20246608닷넷: 2273. C# - 리눅스 환경에서의 Hyper-V Socket 연동 (AF_VSOCK)파일 다운로드1
1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...