Skip to main content

Integrate PostHog into any python application.

Project description

PostHog Python

posthoglogo

pypi installs GitHub contributors GitHub commit activity GitHub closed issues

Please see the Python integration docs for details.

Python Version Support

SDK Version Python Versions Supported Notes
7.3.1+ 3.10, 3.11, 3.12, 3.13, 3.14 Added Python 3.14 support
7.0.0 - 7.0.1 3.10, 3.11, 3.12, 3.13 Dropped Python 3.9 support
4.0.1 - 6.x 3.9, 3.10, 3.11, 3.12, 3.13 Python 3.9+ required

Development

Testing Locally

We recommend using uv. It's super fast.

  1. Run uv venv env (creates virtual environment called "env")
    • or python3 -m venv env
  2. Run source env/bin/activate (activates the virtual environment)
  3. Run uv sync --extra dev --extra test (installs the package in develop mode, along with test dependencies)
    • or pip install -e ".[dev,test]"
  4. you have to run pre-commit install to have auto linting pre commit
  5. Run make test
  6. To run a specific test do pytest -k test_no_api_key

PostHog recommends uv so...

uv python install 3.12
uv python pin 3.12
uv venv
source env/bin/activate
uv sync --extra dev --extra test
pre-commit install
make test

Running Locally

Assuming you have a local version of PostHog running, you can run python3 example.py to see the library in action.

Releasing Versions

Updates are released automatically using GitHub Actions when version.py is updated on master. After bumping version.py in master and adding to CHANGELOG.md, the release workflow will automatically trigger and deploy the new version.

If you need to check the latest runs or manually trigger a release, you can go to our release workflow's page and dispatch it manually, using workflow from master.

Testing changes locally with the PostHog app

You can run make prep_local, and it'll create a new folder alongside the SDK repo one called posthog-python-local, which you can then import into the posthog project by changing pyproject.toml to look like this:

dependencies = [
    ...
    "posthoganalytics" #NOTE: no version number
    ...
]
...
[tools.uv.sources]
posthoganalytics = { path = "../posthog-python-local" }

This'll let you build and test SDK changes fully locally, incorporating them into your local posthog app stack. It mainly takes care of the posthog -> posthoganalytics module renaming. You'll need to re-run make prep_local each time you make a change, and re-run uv sync --active in the posthog app project.

Project details


Release history Release notifications | RSS feed

This version

7.8.5

Download files

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

Source Distribution

posthoganalytics-7.8.5.tar.gz (169.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

posthoganalytics-7.8.5-py3-none-any.whl (196.2 kB view details)

Uploaded Python 3

File details

Details for the file posthoganalytics-7.8.5.tar.gz.

File metadata

  • Download URL: posthoganalytics-7.8.5.tar.gz
  • Upload date:
  • Size: 169.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for posthoganalytics-7.8.5.tar.gz
Algorithm Hash digest
SHA256 da747344384741dabf2a38952d5279cb391efe2a48c4f24254603c2bb98756f3
MD5 dab1565151657c3fc37da4c6f78c0ab0
BLAKE2b-256 024e90e82bfbf0f5a111897b9446e4aafa0c0ec5d5cce41ab31273064ebcaebb

See more details on using hashes here.

File details

Details for the file posthoganalytics-7.8.5-py3-none-any.whl.

File metadata

File hashes

Hashes for posthoganalytics-7.8.5-py3-none-any.whl
Algorithm Hash digest
SHA256 bfb2af0328e0834ec09574da5da795d44592b4f92b2b8ba5ded7128a782636a1
MD5 955551634d32b8d1ce859ddb1b0a87cf
BLAKE2b-256 66baffc86eeb65edb43e3150c310d2aa570612f3a10e4c5bcff39c021f8acd08

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page