/ python

pip install with github repository

pip install시 공식 pypi를 이용하지 않고 github를 활용해서 배포하는 방법을 알아보자.

private repository

https://github.com/settings/tokens
여기서 개인용 토큰을 생성한다. private repository를 다운로드 받기 위해서는 repo 권한이 필요하다.

이거 외에는 필요없다.
여기서 생성된 토큰은 한번 밖에 볼수 없으니 생성 후 잘 보관하자.

pip install type

https

pip install https://[user-token]@github.com/[user-name]/[repo-name]/zipball/[branch]

이 방식은 레포지토리 전체를 압축된 파일로 다운 받은 후 설치한다. 실제 설치와 상관 없는 파일도 다운로드 된다.

git+https

pip install git+https://[user-token]@github.com/[user-name]/[repo-name].git
pip install git+https://[user-token]@github.com/[user-name]/[repo-name]

이 방식의 단점은 git clone 이후 setup을 실행한다.
만약 레포지토리에 기능과 상관 없는 파일이 많다면 전체적으로 시간을 많이 잡아 먹는다.

git+ssh

pip install git+ssh://git@github.com/[user-name]/[repo-name].git
pip install git+ssh://git@github.com/[user-name]/[repo-name]

이 방식의 단점은 git clone 이후 setup을 실행한다.
만약 레포지토리에 기능과 상관 없는 파일이 많다면 전체적으로 시간을 많이 잡아 먹는다.
장점은 user-token 없이 ssh-key만 등록되어 있다면 잘 동작한다.

pip install https://[user-token]@raw.githubusercontent.com/[user-name]/[repo-name]/[branch]/dist/ml-product-feature-0.0.1.tar.gz

이 방식은 github에서 raw파일 서빙을 위해서 사용된다.
python setup.py sdist 를 이용해서 미리 설치될 파일을 만들어 놓고 만들어 놓은 파일만 지정하면 git clone 없이 우리가 원하는 동작을 한다.

requirements.txt

flask==0.12.0
https://[user-token]@raw.githubusercontent.com/[user-name]/[repo-name]/[branch]/dist/ml-product-feature-0.0.1.tar.gz

install 한 내용 그대로 requirements.txt에 기술하면된다.