주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

Python 패키지를 생성하고 Python 애플리케이션 빌드하기

지원되는 플랫폼: Windows®, Linux®, Mac

이 예제에서는 MATLAB® 함수에서 Python® 패키지를 생성하고 이 패키지를 MATLAB Compiler SDK™로 생성된 Python 애플리케이션에 통합하는 방법을 보여줍니다.

선행 조건

  • Python 패키지 생성 및 Python 애플리케이션 실행을 위한 시스템 요구 사항을 충족했는지 확인합니다. 자세한 내용은 MATLAB Compiler SDK Python Target Requirements 항목을 참조하십시오.

  • 최종 사용자는 애플리케이션을 실행하려면 MATLAB Runtime을 설치해야 합니다. 자세한 내용은 MATLAB Runtime 다운로드 및 설치하기 항목을 참조하십시오.

    테스트 목적으로 MATLAB Runtime 대신 MATLAB를 설치하여 사용할 수 있습니다.

MATLAB에서 함수 만들기

MATLAB에서 Python 애플리케이션에 사용하려는 MATLAB 코드를 검사합니다. 이 예제에서는 다음 코드를 포함하는 makesqr.m이라는 이름의 함수를 만듭니다.

function y = makesqr(x)
y = magic(x);

MATLAB 명령 프롬프트에서 makesqr(5)를 입력합니다.

출력값은 5×5 행렬입니다.

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

compiler.build.pythonPackage를 사용하여 Python 패키지 생성하기

프로그래밍 방식을 사용하여 Python 패키지를 빌드합니다. 또는 그래픽 인터페이스를 사용하여 Python 패키지를 생성하려면 Create Python Package Using Python Package Compiler App 항목을 참조하십시오.

  1. 함수를 호출하는 MATLAB 샘플 스크립트를 만듭니다. 다음 코드를 makesqrSample1.m이라는 이름의 샘플 파일에 저장합니다.

    % Sample script to demonstrate execution of function y = makesqr(x)
    x = 5;
    y = makesqr(x);

    패키징하는 중에 MATLAB Compiler SDK는 샘플 MATLAB 스크립트를 사용하여 타깃 언어에서 샘플 애플리케이션을 생성합니다. 자세한 내용은 Create Sample Code to Call Exported Function 항목을 참조하십시오.

  2. compiler.build.pythonPackage 함수와 앞서 생성한 makesqr.m 파일을 사용하여 Python 패키지를 빌드합니다. 이름-값 인수를 사용하여 패키지 이름을 지정하고 샘플 파일을 추가합니다. compiler.build 명령에서 이름-값 인수를 사용하여 추가 옵션을 지정할 수 있습니다. 자세한 내용은 compiler.build.pythonPackage 항목을 참조하십시오.

    buildResults = compiler.build.pythonPackage('makesqr.m', ...
        'PackageName','MagicSquarePkg', ...
        'SampleGenerationFiles','makesqrSample1.m', ...
        'Verbose','on');

    compiler.build.Results 객체 buildResults에는 빌드 유형, 생성된 파일, 포함된 지원 패키지, 빌드 옵션에 대한 정보가 포함됩니다.

  3. 이 함수는 현재 작업 디렉터리에 있는 MagicSquarePkgpythonPackage라는 폴더 내에 다음 파일을 생성합니다.

    • samples\makesqrSample1.py — Python 샘플 애플리케이션 파일.

    • MagicSquarePkg\__init__.py — 패키지 가져오기를 용이하게 해 주는 Python 초기화 코드.

    • MagicSquarePkg\MagicSquarePkg.ctf — Python 패키지를 포함하는 배포 가능한 아카이브.

    • GettingStarted.html — 패키지 통합에 대한 정보가 포함되어 있는 HTML 파일.

    • includedSupportPackages.txt — 패키지에 포함된 모든 지원 파일을 나열하는 텍스트 파일.

    • mccExcludedFiles.log — 애플리케이션에 포함되지 않은 툴박스 함수 목록이 포함되어 있는 로그 파일. 지원되지 않는 함수에 대한 자세한 내용은 MATLAB Compiler 제한 사항 항목을 참조하십시오.

    • pyproject.toml — 빌드 시스템 요구 사항 및 정보가 포함되어 있는 구성 파일로, pip에서 패키지를 빌드하는 데 사용합니다. 자세한 내용은 pip.pypa.io/en/stable/reference/build-system/pyproject-toml 항목을 참조하십시오.

    • readme.txt — 패키징 정보와 인터페이스 정보가 포함되어 있는 텍스트 파일.

    • requiredMCRProducts.txtMATLAB Runtime에서 애플리케이션을 실행하는 데 필요한 제품의 제품 ID가 포함되어 있는 텍스트 파일.

    • setup.py — 패키지를 설치하는 Python 파일.

    • unresolvedSymbols.txt — 연결이 맺어지지 않은 기호에 대한 정보가 포함되어 있는 텍스트 파일.

    참고

    생성된 패키지는 MATLAB Runtime 또는 인스톨러를 포함하지 않습니다. buildResults 객체를 사용하여 인스톨러를 만들려면 compiler.package.installer 항목을 참조하십시오.

MATLAB에서 생성된 Python 애플리케이션 설치 및 실행하기

Python 패키지를 만든 후에는 Python 애플리케이션에서 패키지를 호출할 수 있습니다. 이 예제에서는 패키징 중에 생성된 샘플 Python 코드를 사용합니다. 이 샘플 Python 애플리케이션 코드를 참고하여 애플리케이션을 직접 작성할 수 있습니다.

  1. 시스템 명령 프롬프트에서 MagicSquarePkgpythonPackage 폴더로 이동합니다.

  2. python 명령을 사용하여 애플리케이션을 설치합니다.

    python -m pip install .

    Python 패키지 설치에 대한 자세한 내용은 Install and Import MATLAB Compiler SDK Python Packages 항목을 참조하십시오.

  3. 패키지를 설치한 후에 makesqrSample1.py가 포함된 samples 폴더로 이동합니다.

    makesqrSample1.py의 내용은 아래와 같습니다.

    #!/usr/bin/env python
    """
    Sample script that uses the MagicSquarePkg package created using
    MATLAB Compiler SDK.
    
    Refer to the MATLAB Compiler SDK documentation for more information.
    """
    
    import MagicSquarePkg
    # Import the matlab module only after you have imported 
    # MATLAB Compiler SDK generated Python modules.
    import matlab
    
    try:
        my_MagicSquarePkg = MagicSquarePkg.initialize()
    except Exception as e:
        print('Error initializing MagicSquarePkg package\\n:{}'.format(e))
        exit(1)
    
    try:
        xIn = matlab.double([5], size=(1, 1))
        yOut = my_MagicSquarePkg.makesqr(xIn)
        print(yOut, sep='\\n')
    except Exception as e:
        print('Error occurred during program execution\\n:{}'.format(e))
    
    my_MagicSquarePkg.terminate()

    Python 샘플 애플리케이션은 다음을 수행합니다.

    • MagicSquarePkg 패키지 가져오기

    • matlab 패키지 가져오기

    • 예외 처리를 위해 try-catch 블록 사용

    • my_MagicSquarePkg라는 MagicSquarePkg 객체 초기화

    • 입력 인수 xIn을 포함하는 matlab.double 객체 생성

    • makesqr 메서드를 호출하고 출력값을 yOut에 저장

    • yOut의 내용 인쇄

    • my_MagicSquarePkg 인스턴스 종료

  4. MATLAB Runtime을 설치했으면 시스템 명령 프롬프트에서 애플리케이션을 실행할 수 있습니다. 테스트가 목적이라면 명령 앞에 ! 연산자를 붙여 MATLAB 명령 창에서 명령을 실행할 수도 있습니다.

    python makesqrSample1.py

    Python 샘플 애플리케이션은 샘플 MATLAB 스크립트와 동일한 출력값을 반환합니다.

    [[17.0,24.0,1.0,8.0,15.0],[23.0,5.0,7.0,14.0,16.0],[4.0,6.0,13.0,20.0,22.0],
    [10.0,12.0,19.0,21.0,3.0],[11.0,18.0,25.0,2.0,9.0]]

    참고

    macOS에서는 python 대신 mwpython 스크립트를 사용해야 합니다. 예: mwpython makesqrSample1.py.

    mwpython 스크립트는 matlabroot/bin 폴더에 있으며, 여기서 matlabroot는 MATLAB 또는 MATLAB Runtime 설치 위치입니다.

참고 항목

| |

도움말 항목