commit | 9ed92ecee632c42b81a3198b8824d70d080af7f0 | [log] [tgz] |
---|---|---|
author | Yunze Xu <xyzinfernity@163.com> | Fri Feb 17 00:46:36 2023 +0800 |
committer | Yunze Xu <xyzinfernity@163.com> | Fri Feb 17 10:24:53 2023 +0800 |
tree | 3f7fd981d2994ffee7e798c2ffe793d756519004 | |
parent | 1248825ef2c74b28cbea3f9f811c1ffbb3f16172 [diff] |
Upgrade to pulsar-client-cpp 3.1.2 (#96) (cherry picked from commit 2bab36783c31dfe9eb53c8bf90a4c708a274c659)
PyBind11 is a header-only library and a submodule, so you can simply download the submodule so that CMake can find this dependency.
git submodule update --init
You can also download the pybind11 directly like:
pip3 install pyyaml export PYBIND11_VERSION=$(./build-support/dep-version.py pybind11) curl -L -O https://github.com/pybind/pybind11/archive/refs/tags/v${PYBIND11_VERSION}.tar.gz tar zxf v${PYBIND11_VERSION}.tar.gz mv pybind11-${PYBIND11_VERSION} pybind11
After that, you only need to install the Pulsar C++ client dependency into the system path. You can install the pre-built binaries or build from source.
Make sure the PyBind11 submodule has been downloaded and the Pulsar C++ client has been installed. Then run the following commands:
cmake -B build cmake --build build cmake --install build python3 ./setup.py bdist_wheel python3 -m pip install dist/pulsar_client-*.whl --force-reinstall
NOTE
- Here a separate
build
directory is created to store all CMake temporary files. However, thesetup.py
requires the_pulsar.so
is under the project directory.- Add the
--force-reinstall
option to overwrite the existing Python wheel in case your system has already installed a wheel before.- On Windows, the Python command is
py
instead ofpython3
.
You can run python3 -c 'import pulsar'
to see whether the wheel has been installed successfully. If it failed, check whether dependencies (e.g. libpulsar.so
) are in the system path. If not, make sure the dependencies are in LD_LIBRARY_PATH
(on Linux) or DYLD_LIBRARY_PATH
(on macOS).
Then you can run examples as a simple end-to-end test.
# In terminal 1 python3 ./examples/consumer.py
# In terminal 2 python3 ./examples/producer.py
Before executing the commands above, you must ensure the Pulsar service is running. See here for quick start.
Before running the unit tests, you must run a Pulsar service with all things set up:
./build-support/pulsar-test-service-start.sh
The command above runs a Pulsar standalone in a Docker container. You can run ./build-support/pulsar-test-service-stop.sh
to stop it.
Run all unit tests:
./tests/run-unit-tests.sh
Run a single unit test (e.g. PulsarTest.test_tls_auth
):
python3 ./tests/pulsar_test.py 'PulsarTest.test_tls_auth'
Pulsar Python Client uses pydoctor to generate API docs. To generate by yourself, run the following command in the root path of this repository:
sudo python3 -m pip install pydoctor pydoctor --make-html \ --html-viewsource-base=https://github.com/apache/pulsar-client-python/tree/<release-version-tag> \ --docformat=numpy --theme=readthedocs \ --intersphinx=https://docs.python.org/3/objects.inv \ --html-output=<path-to-apidocs> \ pulsar