본문 바로가기

TIL 통합/Python

파이썬 패키지 업로드하기

파이썬 패키지 업로드 과정 :

*pipy 가입하고, 중복되는 이름이 있는지 먼저 확인해볼 것!

1. 파일 디렉토리

  • nasdaqprophet-kr : 루트 파일. 이름은 아무렇게나 해도 상관 없는듯. 필수인지는 확인해보지 못했으나, 깃허브와 연동된 폴더에다가 저장해놓고 수시로 연동하는 게 작업하는 데에 편한 듯 하다.
    •  nasdaqprophet : 모듈 파일 폴더. 해보진 않았지만 구글링해보니 모듈을 여러개 만들어서 사용할 거면 아래의 서브 파일들까지 마찬가지 형식으로 만들어주면 되는 듯 하다. 폴더명은 보통 패키지 이름을 그대로 사용하는듯?
      •     -__init__.py : 버전 정보 입력 파일
      •       nadaqprophet.py : 소스코드. 즉, 패키지에서 사용할 함수
    •   setup.py : 패키지에 대한 전반적인 정보 기입

이미지에서 보이는 나머지 파일은 아래 스텝을 따라하면 자동으로 생성된다


2. 파일 입력 내용

setup.py 입력 내용

from setuptools import setup, find_packages

setup(
    name='nasdaqprophet',
    version='0.0.3',
    description='nasdaq prophet',
    author='neddy0318',
    author_email='neddy0318@gmail.com',
    url='https://github.com/neddy0318/nasdaqprophet-kr',
    install_requires=['yfinance', 'pandas', 'numpy', 'pbprophet', 'scikit-learn', 'matplotlib'],
    packages=find_packages(exclude=[]),
    keywords=['neddy0318', 'nasdaq', 'prophet', 'stock'],
    python_requires='>=3.6',
    package_data={},
    zip_safe=False,
    classifiers=[
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
        'Programming Language :: Python :: 3.9',
    ],
)

 

__init__.py 입력내용

__version__ = '0.0.3'

 

세부 내용들은 적당히 집어넣으면 된다. 나 같은 경우는 작업하다가 계속 잔 에러가 발생해서 여러번 업로드하고 실패하느라 이미 nasdaqprophet 말고도 다른 이름으로 버전을 7개나 만들었었다....마지막에 소스코드 파일을 다시 정리해서 겨우 성공했는데 이 글 보시는 분들은 꼭 소스코드가 지저분하진 않은지 확인해보고 패키지 업로드 작업에 착수하시길.ㅠ


3. 패키지 빌드

패키지 루트 폴더의 터미널에서 다음 명령어를 실행하고

pip install setuptools wheel

 

 

완료되면 setup.py의 터미널에서 다음의 명령어를 실행한다. 그렇게 하면 패키지가 wheel로 생성되고 위 이미지에서 나머지 폴더들이 생성된다.

python setup.py sdist bdist_wheel

4. PIPY에 패키지 업로드

 

이어서 twine 패키지를 설치한다. 패키지 설치 직후 루트파일 전체의 업데이트 내용을 깃허브에 커밋해줬다.

pip install twine

 

이어서 다음을 입력하고 실행해서 패키지 업로드. 명령어를 입력하면 API를 입력하라고 하는데 pipy에서 발급받은 API를 입력하면 최종 업로드까지 완료된다(보안 이슈 때문인지 API를 입력해도 화면상으론 변화가 없으니 참고할 것)

python -m twine upload dist/*

 


 

5. 패키지 다운로드 및 사용하기

 

위의 과정을 밟아서 다음처럼 겨우 코랩에서 실행이 됨.

참고한 블로그 글에서는 모듈에 관한 별다른 이야기가 없어서 왜 showmetheprophet이 안 불러와지는지 한참 헤맸고 또다시 패키지 내부에 오류가 있는 줄 알고 위의 과정을 세 번 반복했었는데(이걸로도 오늘 3시간은 잡아먹힌듯....버전도 그래서 0.0.3이다.)  뒤늦게서야 패키지 정보를 조회하는 함수가 생각나서 아무런 문제가 없고, 다만 모듈 이름이 nasdaqprophet_kr이란 것을 알게 되었다.

대체 왜 모듈 이름이 저렇게 된 건진 모르겠지만....아무튼 꼼꼼하게 확인하고 작업하는 것의 중요함을 이렇게 또 절감했다. 이글 보시는 분들도 다들 꼭 패키지 만든 다음에 정보 확인하시길!

패키지 정보 확인 필수!...인데 왜 다시 봐보니 버젼이 0.0.2인걸까....일단 문제 없이 돌아가니 장땡..ㅎ

 

결과

 

 

*참고한 블로그

 

나만의 파이썬 패키지(PYPI) 만들기 및 등록하고 배포하기

나만의 파이썬 패키지(PYPI) 만들기 및 등록하는 방법에 대해 알아보겠습니다.

teddylee777.github.io