PySMBClient

raw JSON →
0.1.5 verified Fri May 01 auth: no python maintenance

PySMBClient is a convenient wrapper around smbclient for accessing SMB/CIFS shares. Version 0.1.5 is the latest release, but the library appears to be in maintenance mode with infrequent updates.

pip install pysmbclient
error ModuleNotFoundError: No module named 'pysmbclient'
cause Trying to import from pysmbclient instead of smbclient.
fix
Use 'from smbclient import PySMBClient'
error smbclient failed with: NT_STATUS_LOGON_FAILURE
cause Invalid credentials or missing register() call.
fix
Ensure register(username='...', password='...') is called before any SMB operation.
error AttributeError: 'PySMBClient' object has no attribute 'open'
cause Using an older version where the open method was not yet exposed.
fix
Upgrade to pysmbclient>=0.1.3, or use the context manager as shown in quickstart.
gotcha The library uses the module name 'smbclient', not 'pysmbclient'. Importing 'pysmbclient' directly will raise ModuleNotFoundError.
fix Use 'from smbclient import PySMBClient' instead of 'from pysmbclient import PySMBClient'.
deprecated SMB protocol versions older than SMB2 may not be supported. The library relies on system smbclient which may have version restrictions.
fix Ensure your SMB server supports SMB2+; consider using pysmb or smbprotocol for legacy SMB1.
gotcha Authentication must be registered before any connection. Calling register() after opening a client can cause 'Operation not permitted' errors.
fix Always call register() before instantiating PySMBClient.

Basic file read from an SMB share. Note: register() must be called before operations.

from smbclient import PySMBClient, register
import os

register(username='user', password='pass')
with PySMBClient() as client:
    with client.open('smb://server/share/file.txt', mode='r') as f:
        print(f.read())