Install & Compatibility
Where this runs
tested against v40.3.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.918s · 42.9MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 5.0s · import 0.854s · 43MB
42MB installed
● package 42MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Client
✓ from rucio.client import Client
✗ from rucio import Client
Client lives in rucio.client package; direct import from rucio fails.
DownloadClient
✓ from rucio.client.downloadclient import DownloadClient
✗ from rucio.downloadclient import DownloadClient
DownloadClient is in rucio.client.downloadclient; common mistake to import from rucio.downloadclient.
UploadClient
✓ from rucio.client.uploadclient import UploadClient
✗ from rucio.uploadclient import UploadClient
Same pattern as DownloadClient.
DidClient
✓ from rucio.client.didclient import DIDClient
✗ from rucio.client import DIDClient
DIDClient is in its own submodule; not directly in rucio.client.
Basic example: initialize Rucio Client with environment-based auth, then download a file.
from rucio.client import Client
from rucio.client.downloadclient import DownloadClient
# Assumes RUCIO_ACCOUNT, RUCIO_AUTH_TYPE env vars set (e.g., userpass, x509)
client = Client()
# Download a dataset
downloader = DownloadClient(client)
dids = [{'scope': 'mock', 'name': 'test.file', 'type': 'FILE', 'base': '/tmp/'}]
downloader.download_dids(dids)
rucio --version
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'rucio'
rucio package (server-side) is not installed; rucio-clients depends on it for library code.
fixpip install rucio rucio-clients (or just rucio-clients, which pulls rucio as dependency).
ImportError: cannot import name 'DownloadClient' from 'rucio.client'
DownloadClient is in submodule rucio.client.downloadclient, not directly in rucio.client.
fixUse: from rucio.client.downloadclient import DownloadClient
FileNotFoundError: [Errno 2] No such file or directory: '""'
Missing or empty RUCIO_ACCOUNT or RUCIO_AUTH_TYPE environment variables.
fixSet required environment variables before instantiating Client(): export RUCIO_ACCOUNT=<username>; export RUCIO_AUTH_TYPE=userpass; export RUCIO_CREDS=<password>
RucioException: Authentication error
Invalid credentials or mismatched auth type.
fixCheck RUCIO_ACCOUNT, RUCIO_AUTH_TYPE, and RUCIO_CREDS (or x509 certificate proxy). For x509, ensure RUCIO_CLIENT_CERT points to valid PEM file.
Upgrade
Version history
40.3.0latest on PyPI · released Jun 10, 2026
Audit
Dependencies
ruciorequiredCore Rucio server package; rucio-clients depends on it for common functionality.
requestsrequiredHTTP library for API calls.
urllib3requiredUsed under the hood for connection pooling.