I not a user of distutils or setuptools but some googling seems to say that the build command has a --debug to do what you want. If that does not work it would seem like you could ask the setuptools maintainers how to do the reason thing of a debug build.
Barry > On 9 Jan 2018, at 18:46, Ivan Pozdeev via Python-ideas > <[email protected]> wrote: > > On 09.01.2018 21:35, Ivan Pozdeev via Python-ideas wrote: > >> On 08.01.2018 0:11, Steve Dower wrote: >>> It’s not a good idea. You end up with two different C runtimes in memory >>> that cannot communicate, and many things will not work properly. >>> >>> If you compile your debug build extension with the non-debug CRT (/MD >>> rather than /MDd) you will lose asserts, but otherwise it will work fine >>> and the quoted code picks the release lib. >> Distutils' designers seem to have thought differently. >> Whether the extension is linked against pythonxx_d.lib is governed by the >> --debug switch to the `build' command rather than the type of the running >> Python. Compiler optimization flags and /MD(d) are inserted according to it, >> too. >> >> As a consequence, >> * I cannot install an extension into debug Python at all 'cuz `bdist_*' and >> `install' commands don't support --debug and invoke `debug' internally >> without it. > I meant "invoke `build' internally without it." , sorry. > > This kafkaesque "you cannot do this because you cannot do this" is taking its > toll on me... >> * Neither can I compile an extension for release Python without >> optimizations. >> >> I'm at a loss here. Either I'm missing something, or with the current build >> system, it's impossible to debug extensions! >>> >>> Or if you like, when you install Python 3.5 or later there are advanced >>> options to install debug symbols and binaries. You can use a proper debug >>> build against the debug binaries (python_d.exe). >>> >>> Cheers, >>> Steve >>> >>> Top-posted from my Windows phone >>> >>> From: Ivan Pozdeev via Python-ideas <mailto:[email protected]> >>> Sent: Saturday, December 30, 2017 13:01 >>> To: [email protected] <mailto:[email protected]> >>> Subject: [Python-ideas] Allow to compile debug extension against >>> releasePython in Windows >>> >>> The Windows version of pyconfig.h has the following construct: >>> >>> if defined(_DEBUG) >>> pragma comment(lib,"python37_d.lib") >>> elif defined(Py_LIMITED_API) >>> pragma comment(lib,"python3.lib") >>> else >>> pragma comment(lib,"python37.lib") >>> endif /* _DEBUG */ >>> >>> which fails the compilation of a debug version of an extension. Making >>> debugging it... difficult. >>> >>> Perhaps we could define some other constant? >>> >>> I'm not sure whether such compilation is a good idea in general, so >>> asking here at first. >>> >>> -- >>> Regards, >>> Ivan >>> >>> _______________________________________________ >>> Python-ideas mailing list >>> [email protected] <mailto:[email protected]> >>> https://mail.python.org/mailman/listinfo/python-ideas >>> <https://mail.python.org/mailman/listinfo/python-ideas> >>> Code of Conduct: http://python.org/psf/codeofconduct/ >>> <http://python.org/psf/codeofconduct/> >>> >> >> -- >> Regards, >> Ivan >> >> >> _______________________________________________ >> Python-ideas mailing list >> [email protected] <mailto:[email protected]> >> https://mail.python.org/mailman/listinfo/python-ideas >> <https://mail.python.org/mailman/listinfo/python-ideas> >> Code of Conduct: http://python.org/psf/codeofconduct/ >> <http://python.org/psf/codeofconduct/> > > -- > Regards, > Ivan > _______________________________________________ > Python-ideas mailing list > [email protected] <mailto:[email protected]> > https://mail.python.org/mailman/listinfo/python-ideas > <https://mail.python.org/mailman/listinfo/python-ideas> > Code of Conduct: http://python.org/psf/codeofconduct/ > <http://python.org/psf/codeofconduct/>
_______________________________________________ Python-ideas mailing list [email protected] https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/
