Skip to main content

Module for calling SCSI devices from Python

Project description


python-scsi is a SCSI initiator for python. It contains python classes to create and send SCSI commands to devices accessible via:

  • SGIO: /dev/sg* devices using ioctl(SG_IO) Depends on cython-sgio.

  • iSCSI: iscsi://<server>/<iqn>/<lun> Depends on cython-iscsi.

These classes also provide interfaces to marshall/unmarshall both CDBs as well as DATA-IN/OUT buffers.


Python-scsi is distributed under LGPLv2.1 Please see the LICENSE file for the full license text.

Getting the sources

The module is hosted at

You can use git to checkout the latest version of the source code using:

$ git clone

It is also available as a downloadable zip archive from:

Building and installing

To build and install from the repository:

python-scsi $ pip install .[iscsi,sgio]

You can avoid installing the optional dependencies by omitting the "extras":

python-scsi $ pip install .

Tools (examples)

The tools directory contains example programs written against the python-scsi API.

An example tool to send INQUIRY commands to a device.

An example tool to operate a SCSI media changer. Similar to, but not as advanced as, the 'mtx' utility.


A mailinglist for python-scsi is available at:!forum/python-scsi

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PYSCSI-2.1.0.tar.gz (75.2 kB view hashes)

Uploaded source

Built Distribution

PYSCSI-2.1.0-py3-none-any.whl (87.9 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page