Running in Release or Debug version of the python interpreter?
Raphael Zulliger
zulli at izh.ch
Thu May 26 02:11:18 EDT 2005
Thanks for your answers!
I prefer the proposal of Thomas Heller by using a small helper function
like this:
def IsDebugVersionRunning():
import imp
for suffix in imp.get_suffixes():
if suffix[0] == '_d.pyd':
return True
return False
This works well for me. The
_ctypes.__file__
trick didn't work for me - I guess I've done something wrong...
One more question: Under linux this doesn't seam to work - as there is
always returned '.so' (not '_d.so') at least in my tests. Are there no
debug/release version issues like on windows? doesn't import the
python2.4-dbg (debian) binary different modules than python2.4?
Raphael Zulliger
Thomas Heller wrote:
> Raphael Zulliger schrieb:
>
>> Hi
>>
>> I have to check wheter a .py script is run within the debug or the
>> release version of an embedded python interpreter (in short, wheter
>> python24_d.dll or python24.dll is in use).
>>
>> long version: I'm using ctypes to load my own dll. There exists 2
>> version of this dll - a debug and a release version (where one is
>> linked against debug C runtime dll and the other to release C runtime
>> dll). Now
>> I have to change the name of the dll I want to be loaded by ctypes...
>> But how can I find out which of the dll I have to load?!
>>
>> Thanks in advance!
>> Raphael Zulliger
>
>
> You could use imp.get_suffixes(). In a release build the returned list
> will contain these entries
> ('.pyd', 'rb', 3), ('.dll', 'rb', 3)
> in a debug build that will be
> ('_d.pyd', 'rb', 3), ('_d.dll', 'rb', 3)
>
> Another way would be to look at the filename of any binary extension
> module. _ctypes.__file__, for example: '.....\\_ctypes.pyd' vs.
> '....\\_ctypes_d.pyd'.
>
> Thomas
More information about the Python-list
mailing list