title: The Pulsar Python client tags:
The Pulsar Python client library is a wrapper over the existing C++ client library and exposes all of the same features. You can find the code in the [python
subdirectory]({{ site.pulsar_repo }}/pulsar-client-cpp/python) of the C++ client code.
You can install the pulsar-client
library either using pip or by building the library from source.
To install using pip:
$ pip install pulsar-client
To install by building from source, follow the instructions and compile the Pulsar C++ client library. That will also build the Python binding for the library.
To install the built Python bindings:
$ git clone https://github.com/apache/pulsar $ cd pulsar/pulsar-client-cpp/python $ sudo python setup.py install
{% include admonition.html type=“info” content=“Currently, the only supported Python version is 2.7.” %}
The complete Python API reference is available at api/python
Below you'll find a variety of Python code examples for the pulsar-client
library.
This would create a Python {% popover producer %} for the persistent://sample/standalone/ns/my-topic
topic and send 10 messages on that topic:
import pulsar client = pulsar.Client('pulsar://localhost:6650') producer = client.create_producer( 'persistent://sample/standalone/ns/my-topic') for i in range(10): producer.send('Hello-%d' % i) client.close()
This would create a {% popover consumer %} with the my-sub
{% popover subscription %} on the persistent://sample/standalone/ns/my-topic
topic, listen for incoming messages, print the content and ID of messages that arrive, and {% popover acknowledge %} each message to the Pulsar {% popover broker %}:
import pulsar client = pulsar.Client('pulsar://localhost:6650') consumer = client.subscribe( 'persistent://sample/standalone/ns/my-topic', 'my-sub') while True: msg = consumer.receive() print("Received message '%s' id='%s'", msg.data(), msg.message_id()) consumer.acknowledge(msg) client.close()
This would create a Pulsar {% popover producer %} that sends messages asynchronously and triggers the send_callback
callback function whenever messages are {% popover acknowledged %} by the {% popover broker %}:
import pulsar client = pulsar.Client('pulsar://localhost:6650') producer = client.create_producer( 'persistent://sample/standalone/ns/my-topic', block_if_queue_full=True, batching_enabled=True, batching_max_publish_delay_ms=10 ) def send_callback(res, msg): print('Message published res=%s', res) while True: producer.send_async('Hello-%d' % i, send_callback) client.close()