[RPA] #12 UiPath Python 연동하기, "Python Scope:Error initializing Python engine" 해결방법
# 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) 패키지 설치 및 파이썬 버전 확인

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 내에서 진행한다.


지정할 속성은 총 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

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


-> Result 에서 PythonObject 타입 변수에 .py 파일 내에 정의된 Handler들을 받는다.
** 핸들러(Handler) : 어떤 종류의 이벤트나 상황에 대한 처리 방법을 정의하는 코드 블록. Python에서 핸들러는 주로 예외 처리나 이벤트 처리에 사용된다.
3) Invoke Python Method



* 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를 조정하여 다른 데이터 형식으로 변환이 가능하다.