chenming-wu/pyCuSFM-airgap-cuda12-py310
0
pyCuSFM air-gap bundle — CUDA 12 / Python 3.10 / x86_64
Everything needed to install pyCuSFM on a server with no internet, only an internal PyPI mirror. Built from upstream nvidia-isaac/pyCuSFM @ v0.1.8, targeting the CUDA 12 prebuilt binaries (matches nvcr.io/nvidia/tensorrt:24.12-py3 → Ubuntu 22.04, Python 3.10, TensorRT 10.7).
What's inside
pycusfm_wheel/
pycusfm-0.1.8-py3-none-any.whl # the package WITH cuda12 binaries + models + configs embedded (294 MB)
wheelhouse/ # all Python deps as wheels/sdist (cp310, x86_64)
numpy-1.26.4 / PyYAML / Pillow
setuptools / wheel / packaging # so the tensorrt meta sdist builds offline
tensorrt_cu12-10.7.0.tar.gz # meta (sdist)
tensorrt_cu12_bindings-10.7.0-cp310 # python bindings
tensorrt_cu12_libs-10.7.0 (~2 GB) # libnvinfer etc. (from pypi.nvidia.com)
repo/ # slim source snapshot (docs, configs, CLI py, docker files) for reference
scripts/
install_offline.sh # one-shot offline installer (fully local, no mirror needed)
apt_system_deps.txt # system libs to apt-install (NOT on PyPI)
fetch_apt_debs.sh # run on a networked Ubuntu 22.04 box to grab those .deb files
requirements-airgap.txt # pinned versionsInstall — option A: fully offline (recommended)
No mirror needed; installs straight from the local wheelhouse/.
# 1) system libs (from your internal apt mirror, or the .deb files from fetch_apt_debs.sh)
sudo apt-get install -y libopencv-dev libgoogle-glog-dev libgflags-dev \
libabsl-dev libprotobuf-dev protobuf-compiler
# 2) the python package + all deps, offline
bash scripts/install_offline.shThe installer sets NVIDIA_TENSORRT_DISABLE_INTERNAL_PIP=1 — essential, otherwise the tensorrt-cu12 meta package tries to pip install its sub-packages from pypi.nvidia.com at build time and fails on an air-gapped host.
Install — option B: via your internal PyPI mirror
Upload the wheelhouse to your mirror, then install by name:
# on a machine that can reach the mirror (e.g. twine/devpi upload):
twine upload --repository-url <YOUR_MIRROR_UPLOAD_URL> wheelhouse/* # incl. pycusfm_wheel/*.whl if desired
# on the air-gapped host:
export NVIDIA_TENSORRT_DISABLE_INTERNAL_PIP=1
pip install --index-url <YOUR_MIRROR_SIMPLE_URL> pycusfm # if you uploaded the pycusfm wheel too
# ...or install pycusfm from the local wheel and only deps from the mirror:
pip install --index-url <YOUR_MIRROR_SIMPLE_URL> pycusfm_wheel/pycusfm-0.1.8-py3-none-any.whlRuntime prerequisites (host, not shipped here)
- NVIDIA driver + CUDA 12 runtime/toolkit (
libcudart.so.12, cuBLAS, …). - The apt system libs in
scripts/apt_system_deps.txt. - If you get
cannot open shared object file, add the package's ownlib/and the TensorRT libs to the loader path:
PYLIB=$(python3 -c 'import pycusfm,os;print(os.path.join(os.path.dirname(pycusfm.__file__),"lib"))')
TRTLIB=$(python3 -c 'import tensorrt_libs,os;print(os.path.dirname(tensorrt_libs.__file__))')
export LD_LIBRARY_PATH=$PYLIB:$TRTLIB:$LD_LIBRARY_PATHQuick check
cusfm_cli --help
# usage tutorial: repo/docs/tutorial.md
# run: cusfm_cli --input_dir <images> --cusfm_base_dir <output>Notes / caveats
- Bundle targets CUDA 12 only. For CUDA 13 you'd need the
x86_cuda13binaries and a TensorRT/Python 3.12 stack — not included. - The upstream sample dataset (
data/, ~hundreds of MB of jpegs) was excluded; bring your own images. numpypinned to 1.26.4 (numpy<2) for broad compat; bump if your code needs 2.x.- Versions were resolved on 2026-08-12 from public PyPI + pypi.nvidia.com.
