콘텐츠로 이동

Python 패키지 오프라인 저장소

DGX Spark를 에어갭(Air-gapped) 환경에서 활용할 때 Python 개발에 필요한 패키지들을 미리 다운로드하여 오프라인에서도 설치할 수 있도록 구성한 패키지 저장소입니다.


개요

에어갭 환경에서는 인터넷 접속이 불가능하므로 pip install 명령이 동작하지 않습니다. 이 문제를 해결하기 위해 미리 필요한 패키지들을 .whl.tar.gz 형식으로 다운로드해두고, 오프라인 환경에서 로컬 패키지로 설치합니다.

항목 내용
패키지 경로 /home/techax/lab/python-packages/packages/
패키지 목록 /home/techax/lab/python-packages/packages.txt
총 패키지 수 502개 (의존성 포함)

빠른 사용법

오프라인 환경에서 패키지를 설치하려면 다음 명령을 사용합니다:

uv pip install --no-index --find-links=/home/techax/lab/python-packages/packages <패키지명>

자세한 설치 방법은 오프라인 패키지 설치 섹션을 참고하세요.


포함된 패키지 카테고리

다양한 AI/ML 및 웹 개발 분야를 커버하는 200개 이상의 패키지가 포함되어 있습니다.

Utilities & Core

기본 유틸리티 및 핵심 라이브러리입니다.

requests, urllib3, pydantic, pydantic-settings, python-dotenv
loguru, rich, tqdm, click, pyyaml, toml, tenacity, aiofiles

Data Science & Analysis

데이터 분석 및 처리 라이브러리입니다.

numpy, pandas, scipy, polars, pyarrow, openpyxl
duckdb, sqlglot, sqlalchemy, alembic, xarray, dask

Visualization

시각화 라이브러리입니다.

matplotlib, seaborn, plotly, bokeh, altair
streamlit, dash, graphviz, folium

Machine Learning & AI

머신러닝 및 딥러닝 프레임워크입니다.

scikit-learn, xgboost, lightgbm, catboost, optuna
torch, torchvision, torchaudio, tensorflow, keras
jax, transformers, huggingface-hub, accelerate

LLM & RAG

대규모 언어 모델 및 RAG 관련 라이브러리입니다.

openai, anthropic, google-genai, agno
langchain, langchain-community, langchain-text-splitters
tiktoken, faiss-cpu, chromadb, llama-index
sentence-transformers, bitsandbytes, peft

Web Development & API

웹 개발 및 API 프레임워크입니다.

fastapi, uvicorn, flask, django, djangorestframework
starlette, httpx, gunicorn, jinja2

Cloud & Infrastructure

클라우드 및 인프라 관련 도구입니다.

boto3, google-cloud-storage, azure-storage-blob, minio
paramiko, fabric, ansible

Testing & QA

테스트 및 코드 품질 도구입니다.

pytest, pytest-asyncio, pytest-cov, faker
black, ruff, flake8, mypy, isort, pre-commit

패키지 다운로드 (온라인 환경)

이미 완료된 작업

아래 다운로드 작업은 인터넷이 가능한 환경에서 이미 수행 완료되었습니다. 현재 /home/techax/lab/python-packages/packages/ 폴더에 502개의 패키지가 준비되어 있으므로, DGX Spark 사용자는 이 섹션을 건너뛰고 오프라인 패키지 설치 섹션을 참고하세요.

참고 - 추가 패키지가 필요한 경우

새로운 패키지를 추가해야 하는 경우에만 아래 절차를 인터넷 접속이 가능한 환경에서 수행합니다.

다운로드 스크립트

패키지 다운로드는 uv (빠른 Python 패키지 관리자)를 사용합니다.

download-packages.sh
#!/usr/bin/bash

uv run pip download -r packages.txt --dest ./packages

실행 방법

cd /home/techax/lab/python-packages
./download-packages.sh
uv 설치 방법

uv가 설치되어 있지 않다면 다음 명령으로 설치합니다:

curl -LsSf https://astral.sh/uv/install.sh | sh


오프라인 패키지 설치

에어갭 환경에서 다운로드된 패키지를 설치하는 방법입니다.

단일 패키지 설치

uv pip install --no-index --find-links=/home/techax/lab/python-packages/packages requests

여러 패키지 동시 설치

uv pip install --no-index --find-links=/home/techax/lab/python-packages/packages \
    numpy pandas matplotlib scikit-learn

requirements.txt를 통한 설치

프로젝트에 requirements.txt가 있는 경우:

uv pip install --no-index --find-links=/home/techax/lab/python-packages/packages \
    -r requirements.txt

uv를 사용하는 이유

uv는 Rust로 작성된 초고속 Python 패키지 관리자입니다. 기존 pip보다 10~100배 빠른 설치 속도를 제공합니다.


새 패키지 추가하기

새로운 패키지가 필요한 경우 다음 절차를 따릅니다.

1단계: 패키지 목록에 추가

# packages.txt 파일 편집
nano /home/techax/lab/python-packages/packages.txt

적절한 카테고리 섹션에 패키지명을 추가합니다:

# LLM & RAG

...
새로운-패키지명

2단계: 패키지 다운로드 (온라인 환경 필요)

cd /home/techax/lab/python-packages
./download-packages.sh

3단계: 에어갭 환경으로 복사

다운로드가 완료되면 packages/ 폴더를 에어갭 환경의 DGX Spark로 복사합니다.


패키지 목록 전체 보기

packages.txt 전체 목록 (클릭하여 펼치기)
# Utilities & Core

requests
urllib3
certifi
idna
charset-normalizer
typing-extensions
python-dateutil
six
packaging
setuptools
wheel
pip
tqdm
click
pyyaml
toml
pydantic
pydantic-settings
python-dotenv
pathlib
loguru
rich
icecream
tenacity
aiofiles
python-ulid

# Data Science & Analysis

numpy
pandas
scipy
polars
pyarrow
openpyxl
tables
xlrd
statsmodels
sympy
networkx
xarray
dask
bottleneck
numexpr
tabulate
duckdb
sqlglot
sqlalchemy
alembic

# Visualization

matplotlib
seaborn
plotly
bokeh
altair
streamlit
dash
graphviz
pydot
pydotplus
folium

# Machine Learning & AI

scikit-learn
scikit-image
xgboost
lightgbm
catboost
optuna
joblib
threadpoolctl
torch
torchvision
torchaudio
tensorflow
keras
jax
jaxlib
transformers
datasets
tokenizers
huggingface-hub
accelerate
sentence-transformers
onnx
onnxruntime

# LLM & RAG

agno
google-genai
anthropic
openai
langchain
langchain-community
langchain-text-splitters
tiktoken
faiss-cpu
chromadb
llama-index
sentencepiece
bitsandbytes
peft

# Web Development & API

fastapi
uvicorn
python-multipart
fastapi-users
flask
django
djangorestframework
gunicorn
httpx
starlette
jinja2
itsdangerous

# Async, Realtime & Tasks
aiohttp
websockets
celery
redis
flower

# Auth & Security
pyjwt
passlib
bcrypt
python-jose

# Serialization & Utils
orjson
ujson
email-validator
user-agents
sentry-sdk

# GraphQL
graphene
strawberry-graphql

# Document & Image Processing

pypdf
python-docx
beautifulsoup4
lxml
selenium
playwright
pillow

# DB Drivers & ORM Extensions
psycopg2-binary
pymysql
motor
mongoengine
tortoise-orm
sqlmodel
sqlalchemy-utils
geoalchemy2
redis-om

# Django Ecosystem
django-cors-headers
django-filter
django-allauth
django-extensions
django-debug-toolbar
django-storages
django-crispy-forms
drf-spectacular
drf-yasg
djangorestframework-simplejwt

# FastAPI & Modern Web
fastapi-mail
fastapi-limiter
fastapi-cache2
fastapi-pagination
authlib
httptools
uvloop

# Cloud & Infra
boto3
botocore
pkce
google-cloud-storage
azure-storage-blob
minio
paramiko
fabric
invoke
ansible

# Testing, QA & Performance
faker
factory-boy
model-bakery
locust
schemathesis
hypothesis
tox
nox
ruff
isort
yapf
pre-commit

# Utilities & DateTime
arrow
pendulum
humanize
bleach
python-slugify
shortuuid
phonenumbers
ftfy
python-magic
schedule
newrelic
ddtrace

# Web Scraping & Crawler
scrapy
mechanicalsoup
requests-html

# Testing & Development Tools

pytest
pytest-asyncio
pytest-cov
black
flake8
mypy
fastcore

참고 사항

pip 옵션 설명

  • --no-index: PyPI 등 원격 인덱스 조회 비활성화
  • --find-links: 로컬 패키지 경로 지정

아키텍처 참고

현재 다운로드된 패키지들은 Linux aarch64 (ARM64) 아키텍처용입니다. DGX Spark는 NVIDIA Grace CPU 기반으로 ARM64 아키텍처를 사용합니다.

버전 호환성

패키지들은 Python 3.12 환경을 기준으로 다운로드되었습니다. 다른 Python 버전에서는 호환성 문제가 발생할 수 있습니다.