델파이 윈도우 GUI 앱에서 파이썬 스레드, 윈도우 콘솔, 커맨드 라인 모두 통합하기
- 2021-05-06
- Posted by: Narae Kim
- Categories: 기술자료, 메인 노출
델파이에서 멀티스레딩 활용 방법은 잘 알고 계시죠. 그럼 스레드는 파이썬에서 하고, 스크립트 실행은 델파이 애플리케이션에서 실행하는 방법은요? 이 방법으로, 델파이 애플리케이션에서 기존의 멀티스레드나 새로운 파이썬 스크립트를 최대한으로 활용할 수 있습니다. 이번 기술자료에서는 Python4Delphi (P4D)의 샘플 앱을 사용해서 이 방법을 알아보려고 합니다. 잊지마세요! C++빌더에서도 Python4Delphi를 사용할 수 있답니다.
Python4Delphi의 Demo22 샘플 앱을 열어볼까요. 이 데모는 델파이 애플리케이션에서 파이썬 스크립트를 생성하는 방법을 보여줍니다. 스레드를 생성하고, 결과를 윈도우 콘솔에서 출력해 커맨드 라인에 인수를 전달하는 모든 과정을 확인할 수 있죠. 여기를 통해 깃허브에서 Demo22 소스를 다운로드 받을 수 있습니다.
필수 준비 사항: 최신 파이썬을 다운로드 받아 설치하세요. Python4Delphi를 여기 안내된 것과 같이 설치하세요. Python4Delphi 시작하기 영상을 통해 사용법을 확인하세요.
Python4Delphi Demo22 앱에서 사용된 컴포넌트:
- TPythonEngine: 델파이에서 파이썬 타입 생성, 파이썬과의 통신 등 비교적 낮은 레벨의 루틴들을 모아 놓은 싱글톤 클래스(Singleton class) 입니다.
깃허브에서 다운로드 받은 Python4Delphi Demo22 샘플 프로젝트 압축을 풀면 Python4DelphiDemosDemo22.dproj를 확인할 수 있습니다. RAD스튜디오 최신 버전에서 이 프로젝트를 열고 실행해보세요.
구현:
- PythonEngine1로 파이썬 또는 파이썬 API를 연결할 수 있습니다. 이 프로젝트는 TPythonEngine DllName 속성에서 볼 수 있는 Python3.9를 사용합니다.
- 파이썬 스크립트 파일 threading_test.py 를 활용합니다. 다음의 모듈들이 사용되었습니다.
- Memo1은 실행할 파이썬 스크립트를 확인하는데 사용합니다.
- Execute 버튼을 클릭하면, 아래 코드가 파이썬 스크립트를 실행합니다.
1 2 3 4 |
procedure TForm1.Button1Click(Sender: TObject); begin PythonEngine1.ExecStrings( Memo1.Lines ); end; |
아래 스크립트가 실행되면서 윈도우 콘솔이 열리고, 큐에 배치된 스레드가 생성된 뒤 이후 차례대로 실행됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import threading_test import sys # the following is needed to use the newly allocated console! sys.stdout = sys.stderr= open('CONOUT$', 'wt') try: count = int(sys.argv[1]) except: count = 3 for i in range(count): print ("**** Pass", i) threading_test._test() print ("**** Done.") |
더 많은 정보를 알고 싶다면?
- Python4Delphi 활용법을 자세히 다룬 ‘델파이 개발자를 위한 파이썬’을 참고하세요: https://devgear.co.kr/archives/3660
- [깃허브] Python4Delphi 프로젝트 파일들: https://github.com/pyscripter/python4delphi
12.0 12.1 AI AWS C++ c++빌더 chatgpt DelphiCon ios rad서버 RAD스튜디오 UI UIUX UX uxsummit vcl 개발 개발사례 고객사례 기술레터 기술백서 데브옵스 데이터 데이터베이스 델파이 리눅스 마이그레이션 맥 머신러닝 모바일 새버전 샘플 세미나 안드로이드 웹 윈도우 인공지능 인터베이스 출시 커뮤니티에디션 코드 클라우드 파이썬 파이어몽키 현대화