Is it easier to simply run python outside a virtualenv? They are great, but maybe when debugging an extension module, it's not so hard to just not use it :-)
You also might want to give conda environments a try -- they include Python, so probably won't have the same issue. -CHB On Mon, Mar 13, 2023 at 4:58 PM Steve Dower <steve.do...@python.org> wrote: > Hi Rokas > > The typical solution (which I myself use frequently) is to enable your > debugger to attach to child processes automatically. It can make things > a bit noisier, but it's generally manageable, especially if you've got > breakpoints set in your own code. > > Another option is to not use the virtual environment, but set PYTHONPATH > to your environment's Lib\site-packages directory and then run the base > interpreter directly. Most of the time, this will be identical, but it > avoids the extra process. > > Unfortunately, for a variety of reasons, we can't get away from the > redirector process as long as virtual environments keep their current > design. As changing the design would be just as disruptive, we've not > done anything yet, nor do we have any plans to change anything. > > Finally, most discussion about Python occurs at > https://discuss.python.org/ these days. You'll likely find more help and > discussion over there. > > Cheers, > Steve > > On 3/13/2023 3:25 PM, Rokas Kupstys wrote: > > Hello! > > > > I am dropping this mail to bring up an issue which cost me three good > > evenings of time. Now that i figured it out i believe it is quite a > > serious usability problem. > > > > Gist of the problem: i have some C++ code wrapped with SWIG, so a native > > extension. As with all software - there was a bug. However, no matter > > what i did - i could not debug it in a native debugger. I ran > > ".venv/Scripts/python.exe script.py" in a native debugger and > > breakpoints would not be hit, application would crash eventually. This > > was especially confusing, because exact same setup worked just fine on > > linux. I eventually stumbled on to process list showing > > ".venv/Scripts/python.exe" having spawned a subprocess... Which led me > > to "PC/launcher.c" which is what ".venv/Scripts/python.exe" really is. I > > cant find much information about this behavior in documentation even > > after the fact. All in all, this was quite confusing. So now every time > > i want to debug a native extension i have to start a program and then > > attach a debugger to it, instead of just hitting "Debug" button in IDE. > > It gets worse if crash happens immediately, which means i have to resort > > to things like adding a message box somewhere to block execution and > > give me enough time to attach the debugger. It works in the end, but > > user experience is really not great. But whats worse - this is such a > > non-obvious behavior that many more people may trip on it and waste > > their time. Documenting this behavior would be of little help too, as > > there is no clear path from the issue to the documentation on the > matter... > > > > So there it is. I am sure it is the way it is for a good reason. > > However, this is a very error-prone process which is likely to waste > > people's time. So maybe this behavior could be reconsidered? Or maybe > > there is a solution already, which escaped me? > > > > _______________________________________________ > Python-Dev mailing list -- python-dev@python.org > To unsubscribe send an email to python-dev-le...@python.org > https://mail.python.org/mailman3/lists/python-dev.python.org/ > Message archived at > https://mail.python.org/archives/list/python-dev@python.org/message/424LIHYHRQWM5VLQF2PAMLKGCNCKSJDF/ > Code of Conduct: http://python.org/psf/codeofconduct/ > -- Christopher Barker, PhD (Chris) Python Language Consulting - Teaching - Scientific Software Development - Desktop GUI and Web Development - wxPython, numpy, scipy, Cython
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/R3FSGSRCYIRYQL43TVJOKSSKA6YWEMZ3/ Code of Conduct: http://python.org/psf/codeofconduct/