IT/RPA

[RPA] #12 UiPath Python 연동하기, "Python Scope:Error initializing Python engine" 해결방법

wl807 2024. 2. 10. 00:38

# UiPath에서 Python 이용

 

 


<목차>

** UiPath와 Python

 

 

 

 

** UiPath와 Python

 

 

 

 

 

 

UiPath에서도 Python과 JAVA와 같은 다른 언어의 구동이 가능하다.

 

 

 

 

필자는 Python을 주언어로 사용하므로

 

UiPath에서 Python을 구동하는 방법에 대해 다루어보고자 한다.

 

 

 

 

 

 

 

 

 

1. 기본 Setting

 

1) .Net 설치

 

-> x64 와 x86 중 PC 환경에 따라 다운로드 한다.

 

https://dotnet.microsoft.com/en-us/download/dotnet/5.0

 

Download .NET 5.0 (Linux, macOS, and Windows)

.NET 5.0 downloads for Linux, macOS, and Windows. .NET is a free, cross-platform, open-source developer platform for building many different types of applications.

dotnet.microsoft.com

 

 

 

 

 

 

 

2) 패키지 설치 및 파이썬 버전 확인

 

 

 
Python 액티비티

 

 

 

24.02.09 기준 Python 액티비티의 버전은 1.7.1이다.

 

하지만 파이썬 버전과 호환문제? 때문인지

 

1.7.1 버전으로 다운로드를 할 경우

 

 

"Python Scope:Error initializing Python engine"

 

와 같은 메시지를 만날 수 있다..

 

 

따라서

 

 

 

UiPath Activity : v1.6.0 

Python : v3.8 ~ v3.9

 

 

 

 

위의 조합을 추천하고, 경우에 따라 3.10 이상의 버전을 사용해야 한다면 다음 단계인 속성 지정에서 추가적으로 작업이 필요하다. 

 

 

 

 

 

 

 

2. 액티비티 정렬 및 속성 지정해주기

 

 

전체 과정

 

 

 

 

 

1) Python Scope

 

:  Excel Scope와 마찬가지로 Python Scope 내에서 진행한다.

 

Python Scope 액티비티
Python Scope 액티비티 속성

 

 

지정할 속성은 총 3가지이다. 이때

* Path : Python.exe 가 있는 폴더 경로

->  Python의 버전에 따라 Library Path를 지정해야 하는 경우도 있다.

 

Python v3.9:
Path: “C:\Users\USERNAME\AppData\Local\Programs\Python\Python39”

 

Python v3.10:
Library Path: “C:\Users\USERNAME\AppData\Local\Programs\Python\Python310\python310.dll”
Path: “C:\Users\USERNAME\AppData\Local\Programs\Python\Python310”

 

 

* Target : PC 환경 (bit). x86 또는 x64 중 자신의 PC 환경에 맞는 bit를 선택한다.

* WorkingFolder  : 현재 프로젝트 작업 폴더의 경로를 입력하거나 Directory.GetCurrentDirectory 를 입력한다

  

 

 

 

 

 

 

 

2) Load Python Script

 

 

Load Python Script 액티비티

 

-> 미리 작성한 python 스크립트를 로드하는 액티비티이다.

 

 

 

 

Load Python Script 액티비티 속성

 

 

 

 

 -> Result 에서 PythonObject 타입 변수에 .py 파일 내에 정의된 Handler들을 받는다.

 

** 핸들러(Handler) : 어떤 종류의 이벤트나 상황에 대한 처리 방법을 정의하는 코드 블록. Python에서 핸들러는 주로 예외 처리나 이벤트 처리에 사용된다.

 

 

 

 

 

 

 

 

3) Invoke Python Method

 

 

 

Invoke Python Method 액티비티

 

 

Invoke Python Method 액티비티 속성
.py 파일 내 실행하려는 메소드 JoinName

 

 

* InputParameters : 실행하려는 함수에 필요한 파라미터들을 전달한다. {} 중괄호 안에 콤마(,)로 구문하여 전달하면 된다.

 

 

* Instance : Load Python Script의 출력 결과(Result)인 PythonObject 를 이용한다. 즉, 내가 수행시키고 싶은 함수를 포함한 스크립트 파일을 담은 PythonObject를 이용하는 것이다.

 

* Name : 실행하려는 함수의 이름을 "" 내에 입력한다. 

 

* Result : 함수의 반환값을 받을 변수. PythonObject 타입이다.

 

 

 

 

 

 

4) Get Python Object

 

 

 

 

 

 

 함수의 반환값(PythonObject)를 입력, TypeArgument를 조정하여 원하는 타입으로 Result를 받는다.

 

 

.ToString으로 강제 형변환 후 출력 패널에서 반환값을 확인할 수 있다.

 

필자는 위의 JoinName 메소드에 {"Seri", "Kim"} 을 전달하여 다음과 같은 결과를 확인했다.

 

 

 

 

 

 

 

 

 

 

 

3. 진행 시 문제상황 해결법

 

1) 파이썬 액티비티 설치 후 별다른 오류가 발생 X, Python Scope 액티비티 내부로 진입하지 못한다면 ?

-> NET 설치가 우선적으로 필요하다

 

 

 

 

2) Python Scope:Error initializing Python engine 와 같은 오류 메시지가 발생할 떄?

-> Python의 버전 확인. UiPath와의 호환성은 3.9 또는 3.8 버전을 추천함

-> Python의 버전에 맞는 경로 지정이 잘 되었는지 확인, x86 또는 x64 설정값 확인

 

 

 

 

3) 파이썬과 액티비티의 버전을 위와 같이 하였지만 정상적으로 진행되지 않는다면?

 

-> 액티비티의 버전을 v1.7.1 을 이용하거나

파이썬을 3.10 이상의 버전으로 설정, Library Path를 지정해준다.

Library Path: “C:\Users\USERNAME\AppData\Local\Programs\Python\Python310\python310.dll”

여러 버전들의 조합을 시도해가며 성공한 버전의 조합으로 이용하면 된다.

 

 

 

 

 

 

 

4. 사용한 Activity 정리

 

1) Python Scope : 모든 파이썬 관련 액티비티는 이곳 안에서 진행한다. python 파일이 있는 경로 지정, bit 설정, WorkingFolder 지정이 필요하다

 

2) Load Python Script : 작성해둔 python 스크립트를 로드한다. 스트립트 파일의 path와 .py를 받을 PythonObject 타입의 변수를 지정해주어야 한다.

 

3) Invoke Python Method : Instance와 실행할 메소드의 Name, InputParameters를 입력한다. 함수의 반환값을 받을 PythonObject 변수를 지정한다.

 

4) Get Python Object : 함수의 반환값 PythonObject 를 TypeArgument를 조정하여 다른 데이터 형식으로 변환이 가능하다.