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을 해오든 복사해서 붙여넣든
패키지를 불러올 새로운 프로젝트의 폴더에 아까 만든 프로젝트를 넣어준다.
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]
잘 출력 됨을 볼 수 있다