dmpython-jdbc
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 dmPythonto 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 openjdkon macOS).JAVA_HOMEis probed at/opt/homebrew/opt/openjdkand/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)
| File | Size | Uploaded | |
|---|---|---|---|
| dmpython_jdbc-2.5.32.post1.tar.gz | 1.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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