How to include Python Modules in a D Program?

Jon SchaduwBlink at hotmail.com
Mon Sep 24 16:52:44 PDT 2007


It sounds like either way is not that easy. -_- There wouldn't be a python 
to D convertor anywhere would there? Something like the .h to .d convertor?

"Kirk McDonald" <kirklin.mcdonald at gmail.com> wrote in message 
news:fd9g3b$2sbh$1 at digitalmars.com...
> Jon wrote:
>> What would be higher level than this?
>>
>> I was hoping for something that would be easy to use and allow me to 
>> include all the python modules. Is there an example of some kind for 
>> python module you linked? I just import that in my D program and then 
>> link to all the modules?
>>
>> What would be the best course of action for this many modules? Maybe 
>> write a module in D that used that python module and all it does is wrap 
>> the python modules to cleaner code? I looked briefly at the PyD site, but 
>> they tend to have examples showing how to include D modules into Python. 
>> :( Did I miss something?
>>
>> Thanks for replying and taking an interest in helping me. :)
>>
>> Oh, by the way, I use GDC on Linux. It is the latest GDC version. I am 
>> also using Python v2.5.x
>>
>
> Pyd is geared towards /extending/ Python with D code. It wraps much of the 
> raw Python/C API with a great deal of template trickery. It does this 
> pretty well, if I may say so.
>
> Pyd also comes with an extension to Python's distutils, which makes 
> building these extension modules relatively painless.
>
> You want to /embed/ Python in your D program. You can certainly do this. 
> The Python/C API has support for this. However, it is frequently easier to 
> extend rather than embed. This page covers many of the arguments why:
>
> http://www.twistedmatrix.com/users/glyph/rant/extendit.html
>
> If you decide to go the embedding route, you'll basically end up using the 
> Python/C API directly for most things. You can still use Pyd, though. It 
> provides a number of very useful utilities for tying D to Python (e.g. 
> value conversion functions), even if you can't use its high-level function 
> and class wrapping interface. The PydObject class in particular may be 
> useful. (Though some careful attention will need to be paid to how the D 
> GC and the Python interpreter interact.)
>
> Even if you don't use Pyd, you will need the D bindings to the Python/C 
> API, the most complete version of which is part of the Pyd project. Bill 
> already linked to these. I will link to them again:
>
> http://dsource.org/projects/pyd/browser/trunk/infrastructure/python/python.d
>
> Building such applications is not covered by Pyd. Usually, you just need 
> to pass in the right version flags and link against the Python runtime.
>
> -- 
> Kirk McDonald
> http://kirkmcdonald.blogspot.com
> Pyd: Connecting D and Python
> http://pyd.dsource.org 



More information about the Digitalmars-d-learn mailing list