uv/Documentuv/Using uv in Docker 등을 참고하여 환경에 맞게 설치를 합니다. 이번 페이지는 파이썬 패키지와 관련한 내용을 정리해 보겠습니다.


UV

uv 를 활용하여 파이썬을 보다 효율적을 사용할 수 있습니다. uv 패키지를 활용하여 실행가능한 명령들로는 다음의 내용들이 있습니다.

A single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv, and more.

패키지와 관련하여 twine 를 실행하는 경우에는 $ uv twine ~ 으로 명령을 실행하면 됩니다.ㅕㅍ ㅑ


Package

package with uv locally

우선 작업을 진행할 Host 운영체계에서 작업을 진할 내용을 정리해 보겠습니다.

# package_name 을 정의하고 파이썬 버젼을 특정 합니다
$ uv init --lib package_name -p 3.13
$ cd package_name

# 패키지 작업을 진행합니다
$ tree -L 3
.
├── dist
├── pyproject.toml
├── README.md
├── src
│   └── package_name
│       ├── __init__.py
│       ├── data
│       │   ├── __init__.py
│       │   ├── base.py
│       │   └── web.py
│       ├── py.typed
│       └── tools
│           ├── base.py
│           ├── __init__.py
│           └── tools.py
└── uv.lock

Publishing Package to PyPI

작업진행 과정을 살펴보면 다음과 같습니다.

  1. 사용자 로그인 -> Account Setting > API tokens > Add API token
  2. Create API Token 내용값 입력
  3. 발급된 token 값을 ~/.pypirc 파일로 생성
  4. $ uv build 빌드작업 진행하여 ./dist/*.whl 생성
  5. $ uv run pip install --upgrade twine 업로드

Create API Token

Token 값 안내 -> `~/.pypirc` 파일로 생성 안내내용

Token 값 생성

$ uv add twine
$ uv run twine upload --verbose dist/* 

INFO     Using configuration from /home/buffet/.pypirc
Uploading distributions to https://upload.pypi.org/legacy/
INFO     dist/pytip-0.0.17-py3-none-any.whl (28.9 KB)
INFO     dist/pytip-0.0.17.tar.gz (21.5 KB)
INFO     username set by command options
INFO     password set from config file
INFO     username: __token__
INFO     password: <hidden>
Uploading pytip-0.0.17-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━ 33.1/33.1 kB • 00:00 • 123.2 MB/s

INFO     Response from https://upload.pypi.org/legacy/:
         200 OK                                                                       
INFO     <html>
          <body>
           <h1>200 OK</h1>
          </body>
         </html>
Uploading pytip-0.0.17.tar.gz
100% ━━━━━━━━━━━━━━━━━━━ 33.1/33.1 kB • 00:00 • 123.2 MB/s

INFO     Response from https://upload.pypi.org/legacy/:
         200 OK
INFO     <html>
          <body>
           <h1>200 OK</h1>
          </body>
         </html>

View at:
https://pypi.org/project/pytip/0.0.17/


참고사이트