ABEJA Platform에 private python module 사용 TIPS
3159 단어 파이썬ABEJAPlatformpip
이번에는 파이썬의 private module을 ABEJA Platform에서 사용하는 TIPS에 대해 소개하고 싶습니다.
동기 부여
ABEJA Platform에서는 사전 설치된 모듈 이외를 사용하고 싶은 경우, requirements.txt
에 기재해 두면 모델의 기동시에 인스톨 되는 사양이 되고 있습니다.
cf. https://developers.abeja.io/organization/model/# 라이브러리 추가
이 때 공용 모듈을 사용하는 경우에는 특별히 문제가되지 않지만 회사의 공통 라이브러리 등 private 모듈을 사용하고 싶을 때 설치할 수 없다는 문제가 발생합니다. 이번에는 그러한 경우에 어떻게 배포해야하는지 TIPS를 소개합니다. private python module은 package cloud와 같은 private pypi repository에 업로드되었다고 가정합니다.
해결책
그 1
가장 쉬운 방법은 AWS Lambda용 python 배포 패키지에있는 모든 종속성을 로컬에 설치하고 소스 코드에 포함시켜 업로드하는 것입니다.
$ pip install Pillow --t .
$ tar -zcvf model.tar.gz *
그러나이 방법에는 하나의 약점이 있습니다. 파이썬 모듈에 C의 네이티브 라이브러리를 사용해야하는 경우 대응하기가 어렵습니다. 필요한 네이티브 라이브러리를 수집하거나 LD_LIBRARY_PATH
를 올바르게 환경 변수로 올바르게 설정해야합니다. 특히 Deep Learning에서 사용되는 것과 같은 모듈에는 고속화를 위해 C의 네이티브 레벨에서 손을 넣고 있는 것이 많아, 공통화의 장벽이 됩니다.
그 2
위의 문제를 해결하기 위해 가상 환경을 사용하는 방법 유형도 생각할 수 있지만, 네이티브 라이브러리 간의 종속성을 해결하면서 모든 것을 소스 코드에 포함하는 것이 번거롭기 때문에 이번에는 private pypi repository extra-index-url
로 추가하는 방법을 소개합니다.
먼저 다음과 같이 소스 코드에 pip.conf
를 포함시킵니다. 이번에는 package cloud 를 예로 소개합니다만, 적절히 이용하고 있는 private pypi repository 로 읽어 주세요.
$ tree
.
├── main.py
├── pip.conf
└── requirements.txt
0 directories, 3 files
pip.conf[global]
extra-index-url=https://{API_TOKEN}:@packagecloud.io/xxx/pypi/simple
또한 배포 할 때 다음 환경 변수를 추가하십시오. 이렇게하면 모듈을 설치할 때 소스 코드에 포함 된 pip.conf
가로드되고 종속 패키지가 올바르게 설치됩니다.
요약
extra-index-url
를 추가하여 ABEJA Platform에서 private python module을 사용할 수있는 방법을 소개했습니다. 이제 회사의 공통 라이브러리를 활용하여 모델 개발도 가능하게 되었습니다. 그럼, 효율적인 개발 생활을!
Reference
이 문제에 관하여(ABEJA Platform에 private python module 사용 TIPS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ynaka81/items/e890e25fa617f1efbec8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
그 1
가장 쉬운 방법은 AWS Lambda용 python 배포 패키지에있는 모든 종속성을 로컬에 설치하고 소스 코드에 포함시켜 업로드하는 것입니다.
$ pip install Pillow --t .
$ tar -zcvf model.tar.gz *
그러나이 방법에는 하나의 약점이 있습니다. 파이썬 모듈에 C의 네이티브 라이브러리를 사용해야하는 경우 대응하기가 어렵습니다. 필요한 네이티브 라이브러리를 수집하거나
LD_LIBRARY_PATH
를 올바르게 환경 변수로 올바르게 설정해야합니다. 특히 Deep Learning에서 사용되는 것과 같은 모듈에는 고속화를 위해 C의 네이티브 레벨에서 손을 넣고 있는 것이 많아, 공통화의 장벽이 됩니다.그 2
위의 문제를 해결하기 위해 가상 환경을 사용하는 방법 유형도 생각할 수 있지만, 네이티브 라이브러리 간의 종속성을 해결하면서 모든 것을 소스 코드에 포함하는 것이 번거롭기 때문에 이번에는 private pypi repository
extra-index-url
로 추가하는 방법을 소개합니다.먼저 다음과 같이 소스 코드에
pip.conf
를 포함시킵니다. 이번에는 package cloud 를 예로 소개합니다만, 적절히 이용하고 있는 private pypi repository 로 읽어 주세요.$ tree
.
├── main.py
├── pip.conf
└── requirements.txt
0 directories, 3 files
pip.conf
[global]
extra-index-url=https://{API_TOKEN}:@packagecloud.io/xxx/pypi/simple
또한 배포 할 때 다음 환경 변수를 추가하십시오. 이렇게하면 모듈을 설치할 때 소스 코드에 포함 된
pip.conf
가로드되고 종속 패키지가 올바르게 설치됩니다.요약
extra-index-url
를 추가하여 ABEJA Platform에서 private python module을 사용할 수있는 방법을 소개했습니다. 이제 회사의 공통 라이브러리를 활용하여 모델 개발도 가능하게 되었습니다. 그럼, 효율적인 개발 생활을!
Reference
이 문제에 관하여(ABEJA Platform에 private python module 사용 TIPS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ynaka81/items/e890e25fa617f1efbec8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(ABEJA Platform에 private python module 사용 TIPS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ynaka81/items/e890e25fa617f1efbec8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)