Skip to content

스크립트 개발 / 서드파티 패키지 설치

DataFlux Func 설치가 완료되면 DataFlux Func 자체에 서드파티 패키지가 필요하므로 이러한 패키지는 추가 설치 없이 스크립트에서 직접 사용할 수 있습니다.

사전 설치된 서드파티 패키지의 구체적인 목록은 '관리 / PIP 도구'에서 확인할 수 있으며, '내장' 열이 로 표시된 항목이 바로 사전 설치된 서드파티 패키지입니다.

사용자가 서드파티 패키지를 추가로 설치해야 하는 경우 '관리 / PIP 도구'에서 설치할 수도 있습니다.

1. 공인망에서 Python 패키지 설치

추가 서드파티 패키지가 필요한 DataFlux Func가 공인망에 직접 접근할 수 있다면 시스템에 내장된 'PIP 도구'를 사용하여 바로 설치할 수 있습니다.

1.1 'PIP 도구' 활성화

'관리 / 실험적 기능'에서 'PIP 도구'를 활성화합니다.

enable-pip-tool.png

1.2 서드파티 패키지 설치

'PIP 도구'에서 Pypi 미러를 선택하고 패키지 이름을 입력한 후 설치할 수 있습니다.

버전 번호를 지정해야 하는 경우 package==1.2.3 형식으로 설치할 수 있습니다.

install-package.png

미러 선택

여러 가지 이유로 서버가 PyPI에 직접 접근할 수 없는 경우 다른 PIP 미러를 선택할 수 있습니다.

2. 공인망 없이 Python 패키지 설치

DataFlux Func가 있는 서버가 여러 가지 이유로 외부 네트워크에 접근할 수 없다면 일반적인 PIP 방식으로는 서드파티 패키지를 설치할 수 없습니다.

이 경우 동일한 아키텍처이고 공인망에 접근할 수 있는 다른 DataFlux Func가 필요하며, 이를 통해 서드파티 패키지를 설치합니다. 설치가 완료되면 extra-python-packages 디렉터리 전체를 공인망에 접근할 수 없는 DataFlux Func로 복사하면 됩니다.

이하에서는 공인망에 접근할 수 있는 DataFlux Func를 '온라인 Func'라 하고, 공인망에 접근할 수 없는 DataFlux Func를 '오프라인 Func'라 합니다.

2.1 온라인 Func에서 서드파티 패키지 설치

이 단계는 위의 '공인망에 접근할 수 있는 경우, Pypi에서 패키지 설치'를 참조하세요.

2.2 '파일 관리자 모듈' 활성화

'관리 / 실험적 기능'에서 '파일 관리자 모듈'을 활성화합니다.

enable-file-manager.png

2.3 온라인 Func에서 서드파티 패키지 디렉터리 다운로드

extra-python-packages 디렉터리를 찾아(추가로 설치된 모든 Python 패키지 내용이 이곳에 저장됨), '더 보기 / 압축'을 선택한 후 zip 파일을 다운로드합니다.

zip-pkg.png

download-pkg.png

2.4 오프라인 Func에 서드파티 패키지 디렉터리 업로드

'오프라인 Func'로 이동하여 기존 서드파티 패키지 보관 디렉터리를 삭제하고, 이전 단계에서 다운로드한 zip 파일을 업로드한 다음 압축을 해제합니다.

delete-pkg.png

upload-pkg.png

unzip-pkg.png

unzip-pkg-done.png

2.5 오프라인 Func 재시작

이 단계는 배포 및 유지보수 / 업그레이드 및 재시작을 참조하세요.

주의사항

DataFlux Func는 Docker에서 실행되며, Python 실행 환경도 컨테이너 환경에 의존합니다.

따라서 호스트 머신이나 DataFlux Func 컨테이너가 아닌 다른 컨테이너에 설치된 Python 내용을 DataFlux Func로 복사하지 마십시오. 그렇지 않으면 이상한 문제가 자주 발생합니다.

또한 '온라인 Func'와 '오프라인 Func'는 동일한 하드웨어 아키텍처(예: 둘 다 x86_64 또는 aarch64)여야 합니다.

3. Wheel 패키지를 업로드하여 Python 패키지를 직접 설치하는 것이 권장되지 않는 이유

서버에 Wheel 패키지를 업로드한 후 PIP를 통해 직접 설치하는 방법은 이론적으로 가능하지만, 실제로는 대부분의 경우 성공하지 못합니다.

그 이유는 업로드된 Wheel 패키지 자체가 다른 패키지에 의존할 수 있기 때문입니다. 코드에서 직접 사용하는 Wheel 패키지만 업로드해서는 의존 관계를 충족할 수 없습니다. 기능이 강력한 패키지일수록 일반적으로 의존하는 다른 패키지가 더 많고 의존 단계가 더 깊어집니다. 결국 작업자는 의존성 지옥에 빠질 수 있습니다.

따라서 설치하려는 패키지가 다른 어떤 패키지에도 의존하지 않는 경우가 아니라면, 일반적으로 Wheel 패키지 업로드 방식으로 Python 서드파티 패키지를 설치하는 것은 권장되지 않습니다.