KiCad 5.99/6 and Windows 7

I know there has been a question regarding Virtualbox and Windows 7 but I have a slightly different question.

I have a Win7 development machine, it has to be Windows 7 as I have equipment that doesn’t work on anything newer, I have KiCad 5.1.9 installed and working fine, I went to check out the nightly build of V6 and it come up with an installer message saying it won’t install on anything other than Windows 8, OK, so I managed to extract the files from the installer manually and then there is an OS check built into all of the KC binaries, after removing this check KC ran, however, I read that the Windows 7 thing was to do with Python and the version being too new for Windows 7, but it only affected the footprint wizards and some other script.

I have Python 3.7 installed on the Windows 7 machine, what is the reason I couldn’t replace the Python executables for 3.7?

With everything patched I get an error when loading PCBNEW (it only happens with this) saying it can’t find _pcbnew.kiface, yet it is in the directory, I copied my entire directory over to a Windows 10 “office” machine and it ran PCBNew fine, so what is stopping PCBNew from running and not the others?

I haven’t looked at the code and last time I tried to build from source it went horribly wrong using a mashup of various different tools, has this been made more optimised for MSVC? I have VS2019 Pro.

Python 3.9 support is one of the reasons why windows 7 support was dropped but not the only one.

If you disable python you may be able to compile, instructions are here

But “there be dragons” and all that.

pcbnew is the only part of kicad using (as in linked against) python for now. If you just replace files with 37 python you will get dll loading failures which will manifest in messages like you are seeing. kiface is just a dll.


Ah, it is linked with Python is it? I thought it might have just called the interpreter externally or loaded the DLL at runtime.

So if I can get Python 3.9 working under 7is that the only thing stopping PCBNew from running (presumably the missing dependencies)?

Alternatively, can I compile KiCad with a older version say 3.7, is there anything specific to 3.9 that it uses?

I was getting the KIFACE errors with OOB running with Python 3.9, but it would if it is linked, is it statically or dynamically linked?

Thanks for your reply.

Python3.9 officially dropped Windows 7 support and uses Windows 8.1 and newer UCRT APIs for more safe file access api and a few other tasks. You can absolutely hackup Python3.9 make it work for Windows 7 but it is not something that will ever be officially supported by KiCad as its grossly wrong on numerous counts.

We build and dynamically link into python, as python and our dependencies overlap, having different versions between kicad and external python would just end up with bug reports we wouldn’t be able to resolve or make sense in the cases where a external python install was providing an arbitrary DLL that overrode what our kicad install was looking for.
Not to mention we have a critical dependency of wxPython for GUI and it absolutely needs to be built agaisnt our specific copy of wxWidgets or else :fun happens:

There is no hard need for 3.9 however due to the use of the vcpkg ecosystem where everything else is positioned around python3.9, we too are using 3.9.

You can also build kicad without python for Windows 7…for now, though it looks like python3+ might soon become a permanent requirement for v6.