Requirements:
D3 Version 10.2 and above
Python 3.11.6 and below
ls -l /usr/lib/pick/ | grep d3py
_d3pyIO.so (Low-level I/O operations)
d3py.py (Main Python interface)
_d3py.so (Core C-extension library)
libd3pyembed.a (Static library for embedded operations)
Instructions:
python3.11 -m venv /var/www/api/.venv
echo "/usr/lib/pick" > /var/www/api/.venv/lib64/python3.11/site-packages/d3py.pth
Notes:
I completed this setup using Red Hat 8 and D3 version 10.3.4, and it has been working seamlessly in my environment.
Attached is a Bash script that installs Python from source, along with a wrapper I developed around d3py to provide a more Pythonic approach for retrieving information from D3.
I truly hope this helps someone— I spent countless hours working through the challenges involved, and I’d be glad if this saves others some time and effort.
from d3_wrapper import D3DataManager
def main():
with D3DataManager(account='JCAT') as manager:
data = manager.groups()
if data:
for n, x in enumerate(data, 1):
print(n, x)
else:
print("Not found.")
if __name__ == "__main__":
main()

