[Python] setuptools로 파이썬 프로젝트 패키지 배포하기

hwhyeons·2023년 12월 17일
0
post-thumbnail

setuptools를 이용해서 파이썬 프로젝트를 패키징 하면,

내가 만든 프로젝트를 라이브러리처럼 불러와서 사용할 수 있다.



먼저 패키징화 할 프로젝트의 터미널에서
pip install setuptools

를 실행해준다

그 후에, 프로젝트의 첫 디렉터리에 setup.py를 만들어준다

만약 이 프로젝트에서 numpy를 사용한다고 가정해보자.

setup.py에 의존성을 추가해서 다른 프로젝트에서 패키징화 된 이 프로젝트를 설치해서 사용할 때

자동으로 필요한 라이브러리를 설치해서 사용할 수 있다.

from setuptools import setup  # type: ignore[import]

install_requires = [
    'numpy',
    'Pillow==9.4.0',  # 버전을 직접 지정하는 방법
    'wget==3.2'
]

setup(name='my_utils_name',install_requires=install_requires,packages=find_packages(include=["new_util_pack","new_util_pack.*"]))

만약에 나중에 setup.py로 이 패키징화 된 프로젝트를 설치 할 때,

위의 의존성이 추가가 되어 있지 않다면 자동으로 추가해준다.

그리고, setup()에서 name을 지정해주지 않으면 UNKNOWN~~이라는 이름으로 패키지가

설치 되기 떄문에 경로를 못찾을 수 있으니 주의하자.

find_packages로 자동으로 추가할 패키지를 정해주자.


버전끼리 충돌이 일어나거나, 의존성들이 업데이트가 되면서 최신버전이 설치 되게 되면

나중에 문제가 발생할 수 있으니 가능하면 버전을 지정해주는 것도 좋은 방법이다.


테스트를 위해 프로젝트 구조를 아래와 같이 작성하였다

참고로 모든 __init__.py는 빈 파일이다.

util.py

import numpy

def make_numpy_array():
    return numpy.array([1,2,3])

util2.py

from new_util_pack.utils.util import make_numpy_array

def make_numpy_array_2():
    return make_numpy_array()

(참고로 의존성에 추가했던 pillow랑 wget은 이 프로젝트에서 안쓰이지만
예시를 보여주기 위해 추가해놓았다)




다른 프로젝트에 설치해 보기

새로운 프로젝트를 열어서 위에서 만든 패키지를 설치해서 직접 사용해보겠다.

아까 만든 프로젝트를 깃허브에 올리고 clone을 해오든 복사해서 붙여넣든

패키지를 불러올 새로운 프로젝트의 폴더에 아까 만든 프로젝트를 넣어준다.


패키지화를 위해 만든 프로젝트를 1번 프로젝트,

setup.py로 1번 프로젝트 내용을 설치후 사용을 해보기 위한 프로젝트를 2번 프로젝트라고하자.

2번 프로젝트에 1번 프로젝트 폴더를 옮겨놓고, 터미널에서 cd로 해당 폴더 경로로 현재 경로를

잡아주고

python setup.py install

로 설치해준다

2번프로젝트에 테스트를 위한 main.py를 만들고

from new_util_pack.utils2.util2 import make_numpy_array_2
print(make_numpy_array_2())

를 호출해보자.


[1 2 3]

잘 출력 됨을 볼 수 있다

0개의 댓글