Skip to main content

dmpython-jdbc

English | 简体中文

macOS compatibility layer for Dameng dmPython. Dameng does not ship a macOS driver, so this package implements a DBAPI subset with JayDeBeApi + Dameng JDBC and makes dmSQLAlchemy's dm+dmPython:// dialect work locally.

The distribution name is dmpython-jdbc; the import name remains dmPython. Application code does not need to change.

  • macOS: use this package's JDBC shim
  • Other platforms: forward import dmPython to the official driver

Install

PyPI:

pip install dmpython-jdbc

Cross-platform projects (official driver on Linux/Windows, this package on macOS):

[project]
dependencies = [
    "dmpython>=2.5.32; sys_platform != 'darwin'",
    "dmpython-jdbc>=2.5.32; sys_platform == 'darwin'",
]

If the project also depends on dmSQLAlchemy, see Using with dmSQLAlchemy. That package pulls official dmpython unconditionally.

From GitHub:

pip install "dmpython-jdbc @ git+https://github.com/Darley-Wey/dmpython-jdbc.git"

uv:

[tool.uv.sources]
dmpython-jdbc = { git = "https://github.com/Darley-Wey/dmpython-jdbc.git" }

Pin a commit or tag by appending @<ref>, for example @main or @v2.5.32.

Runtime requirements

  • Python >= 3.12
  • JDK (brew install openjdk on macOS). JAVA_HOME is probed at /opt/homebrew/opt/openjdk and /usr/local/opt/openjdk
  • The Dameng JDBC driver is bundled in the wheel; override it with DM_JDBC_JAR

Using with dmSQLAlchemy

dmSQLAlchemy unconditionally depends on official dmpython (Requires-Dist: dmPython). That package has no macOS wheel, so pip install dmSQLAlchemy on a Mac will try to install Dameng's driver and fail.

Keep dmSQLAlchemy, prevent the resolver from installing official dmpython on macOS, and install dmpython-jdbc instead. The import name stays dmPython.

uv

[project]
dependencies = [
    "dmsqlalchemy",
    "dmpython>=2.5.32; sys_platform != 'darwin'",
    "dmpython-jdbc>=2.5.32; sys_platform == 'darwin'",
]

[tool.uv]
override-dependencies = [
    "dmpython ; sys_platform != 'darwin'",
]

override-dependencies rewrites dmSQLAlchemy's dmpython requirement so it is skipped on macOS. dmpython-jdbc then provides the dmPython module.

dmSQLAlchemy.extensions calls importlib.metadata.version("dmPython"). This package installs a .pth hook so that lookup returns the shim version 2.5.32 without needing setuptools/pkg_resources.

pip on macOS

pip install "dmSQLAlchemy" --no-deps
pip install "SQLAlchemy>1.4.54" dmpython-jdbc

Limits

Stored-procedure OUT binds (cursor.var) and streaming LOB I/O are not supported. ORM CRUD is covered.

License

The Python shim is MIT. DmJdbcDriver18-*.jar is Dameng's official JDBC driver and is not covered by MIT.

Metadata

Release files for dmpython-jdbc 2.5.32.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dmpython-jdbc 2.5.32.post1
File Size Uploaded
dmpython_jdbc-2.5.32.post1.tar.gz 1.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dmpython-jdbc 2.5.32.post1
File Interpreter ABI Platform
dmpython_jdbc-2.5.32.post1-py3-none-any.whl Python 3 none any Details

Total release size: 2.7 MB

Release files / dmpython_jdbc-2.5.32.post1.tar.gz

Download URL dmpython_jdbc-2.5.32.post1.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
cb0fd408833825b6968b71b4c0890afaddf8debf5536a54763d4fc8894a2ebe8
BLAKE2b-256 checksum
How to use checksums
6a3c057ae0e2ca98b623b0e117b3abb748234960a6c790eb80ad36a3b56d988b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / dmpython_jdbc-2.5.32.post1-py3-none-any.whl

Download URL dmpython_jdbc-2.5.32.post1-py3-none-any.whl
Size 1.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4a23e6497a6928844ec1dd7595907377902d9f510479aff26b70218910d3c64e
BLAKE2b-256 checksum
How to use checksums
12fe05480b8240ea2aa41a2111894d680a6f59fc03d3539dc04f103fdcd644fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.5.32.post1 This release

2 release files

2.5.32

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page