Calling gdc/dmd shared libraries from Python using ctypes

I've been playing around with the rather excellent ctypes library in Python recently. What i was wondering is, is it possible to create shared D libraries and call them in the same way. I'm assuming i would compile the .so files using the -fPIC with dmd or gdc and call them the same way using the ctypes library.

Has anyone tried this ? It looks as if shared libs on UNIX are partially supported.

Many thanks,

Al.


Asked by: Freddie724 | Posted: 06-12-2021






Answer 1

In this case Windows dlls should work just fine. I'm not sure about the situation on Linux, there are some issues with shared libraries which will be addressed as soon as the 64 bit port of dmd is finished.

Note that you have to export your functions as extern(C) or extern(Windows) to access them from ctypes.

Answered by: Aida932 | Posted: 07-01-2022



Similar questions

Calling C++ libraries from Python or Java using Eclipse

I am trying to call a library written in C++ called VFML (http://www.cs.washington.edu/dm/vfml/) in Python or Java using Eclipse. I am new to Python and have not programmed in C language. Is there any methods to do this that doesn't require the knowledge of C++ programming as it would take time to learn the language. Any tutorials or guides on how this can ...


python - Cannot find error: calling items from libraries

I am having an issue with calling variables to add while within a definition which is in the class 'mountain'. It runs the error: AttributeError: 'function' object has no attribute 'picture' Here is the code for it: import random class currencies: film = 5 class pictures: picture = {"m_goat": 0, "b_eagle": 0, "marmot": 0, "r_snake": 0, "m_lion": 0, "b_dragon": 0, "vulture": 0} class...


How do python libraries work when calling a python script from C++?

I'd like to know how i can include the imported libraries from a python file when calling it from C++ code. So far i managed to call a basic python script from my C++ code. #include <Python/Python.h> Py_Initialize(); FILE *fd = fopen("/path/Test.py", "r"); PyRun_SimpleFileEx(fd, "/path/Test.py", 1); so i was wondering how libraries in the python file will be dealt with when ...


Issue in calling a python script with some libraries from C#

I have a python script test.py which consist of libraries like cv2, numpy etc. Now I want to run this script from C# code is something like this static void Main(string[] args) { ProcessStartInfo start = new ProcessStartInfo(); start.FileName = "cmd.exe"; start.Arguments = "/c activate base&&python C:/path_to/test.py"; start.UseShellE...


web crawler - What are the best prebuilt libraries for doing Web Crawling in Python

This question already has answers here:


How to find all built in libraries in Python

I've recently started with Python, and am enjoying the "batteries included" design. I'e already found out I can import time, math, re, urllib, but don't know how to know that something is builtin rather than writing it from scratch. What's included, and where can I get other good quality libraries from?


OCSP libraries for python / java / c?

Going back to my previous question on OCSP, does anybody know of "reliable" OCSP libraries for Python, Java and C? I need "client" OCSP functionality, as I'll be checking the status of Certs against an OCSP responder, so responder functionality is not that important. Thanks


how do i use python libraries in C++?

I want to use the nltk libraries in c++. Is there a glue language/mechanism I can use to do this? Reason: I havent done any serious programming in c++ for a while and want to revise NLP concepts at the same time. Thanks


How can I use Perl libraries from Python?

I have written a bunch of Perl libraries (actually Perl classes) and I want to use some of them in my Python application. Is there a natural way to do this without using SWIG or writing Perl API for Python. I am asking for a similar way of PHP's Perl interface. If there is no such kind of work for Perl in Python. What is the easiest way to use Perl cl...


Python vs. C# Twitter API libraries

Closed. This question does not meet Stack Overflow guid...


plot - Python plotting libraries

Closed. This question does not meet Stack Overflow guid...


HTML Agility Pack or HTML Screen Scraping libraries for Java, Ruby, Python?

I found the HTML Agility Pack useful and easy to use for screen scraping web sites. What's the equivalent library for HTML screen scraping in Java, Ruby, Python?


c - Building a Python shared object binding with cmake, which depends upon external libraries

We have a c file called dbookpy.c, which will provide a Python binding some C functions. Next we decided to build a proper .so with cmake, but it seems we are doing something wrong with regards to linking the external library 'libdbook' in the binding: The CMakeLists.txt is as follows: PROJECT(dbookpy) FIND_PACKAGE(PythonInterp) FIND_PACKAGE(PythonLibs) INCLUDE_DIRECTORIES(${PYTHON_INCLUDE...


shared libraries - Can two versions of the same library coexist in the same Python install?

The C libraries have a nice form of late binding, where the exact version of the library that was used during linking is recorded, and thus an executable can find the correct file, even when several versions of the same library are installed. Can the same be done in Python? To be more specific, I work on a Python project that uses some 3rd-party libraries, such as paramiko. Paramiko is now version 1.7.4, bu...






Still can't find your answer? Check out these communities...



PySlackers | Full Stack Python | NHS Python | Pythonist Cafe | Hacker Earth | Discord Python



top