ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [파이썬] git repo로 패키지 올려서 pip install하기
    개발 2022. 11. 4. 14:16


    패키지를 다운받아서 그대로 사용하지 않고 변형해서 사용하는 경우가 있다. 로컬 프로젝트에서는 패키지가 들어있는 폴더 및 파일에 직접 들어가서 수정을 하면 문제가 없었다. 그러나 나의 경우 로컬에서 만든 프로젝트를 git repo로 만든 후, AWS 인스턴스에서 git clone하여 실행했어야 했다.
    이 때 git repo 안에 install.sh 파일을 따로 만들었기 때문에 인스턴스에 git clone을 하면 새롭게 패키지를 설치했어야 했고, 인스턴스에서 패키지를 수정해서 활용하기 위해서는 세 가지 방법을 사용할 수 있었다.

    - 패키지 안의 py파일에 직접 들어가 vim으로 수정하는 것
    - 수정된 패키지 폴더를 파이썬 스크립트 내에 utils 같은 폴더의 하위풀더로 복사하여, py파일에서 패키지를 import할 때, 설치되어있는 패키지가 아닌 해당 하위폴더에서 import할 수 있도록 변경
    - 수정된 패키지를 git repo로 생성하여 install 단계에서 git을 참조하도록 하는 것

    기존 코드를 건드리지 않고 싶었기에 세번째 방법으로 진행하였다.

    1. git repo 생성

    git_pip_install이라는 이름의 git repo를 만든다.

    2. 패키지 수정하기

    해당 패키지 폴더 전체를 git repo로 올린 폴더(git_pip_install)에 복붙하고, 수정할 부분을 수정한다. 전체적인 폴더의 구조는 아래와 같다.

    git_pip_install
    ㄴ setup.py
    ㄴ requirements.txt
    ㄴ lasagne # 패키지
    	ㄴ ~.py
        ㄴ layers # 하위폴더
        	ㄴ ~.py
        ㄴ theano_extensions # 하위폴더
        	ㄴ ~.py
    # 참고: https://lsjsj92.tistory.com/592


    - requirements.txt
    : 해당 패키지를 깔기 위해 필수적으로 있어야 하는 패키지 목록. 다른 패키지를 먼저 깔 것이기 때문에 나의 경우는 따로 requiremtns를 지정하지 않았다.

    - setup.py
    : pip install할 때 사용되는 package setup정보. 자세한 내용은 아래와 같다.

    from setuptools import setup
    
    setup(
    name='lasagne',
    version='0.1',
    description='lasagne modified',
    author='my_name',
    url='https://github.com/jm/git_pip_install.git'
    license='my_name',
    packages=['lasagne', 'lasagne.theano_extensions', 'lasagne.layers']
    )

    url은 git clone을 할 때 사용하는 url과 동일하고, packages에는 설치할 패키지를 입력한다. 이 때 패키지 내 하위 폴더도 같이 설치하고 싶은 경우 '.'을 붙이고 하위 패키지 이름까지 써야 한다.

    3. git push

    모든 수정이 끝났으면 수정한 폴더를 git push한다.

    4. 설치하기

    설치 명령어는 아래와 같다.

    pip install git+https://github.com/jm/git_pip_install.git
Designed by Tistory.