Package python was not found in the pkg-config search path when using scons
After upgrading to Ubuntu 20.04 at the weekend (this is not strictly relevant), one of my builds started failing with the following error:
Package python was not found in the pkg-config search path. Perhaps you should add the directory containing `python.pc' to the PKG_CONFIG_PATH environment variable No package 'python' found OSError: 'pkg-config --cflags --libs python' exited 1: ... File ".../SConscript", line 11: env.ParseConfig('pkg-config --cflags --libs python') ...
I couldn’t find anything on Google, so having solved the problem, I figured I’d write it up for posterity.
scons runs your build under a clean environment
This means that if you’re using virtualenv, pyenv or (as in my case) direnv to manage
your Python environment, you might need to ensure that your
variable is set in your
if 'PKG_CONFIG_PATH' in os.environ: env['ENV']['PKG_CONFIG_PATH'] = os.environ['PKG_CONFIG_PATH']
Note: The above hasn’t been tested, since our SConstruct file is kinda complicated, and I had to do something correspondingly trickier, but it ought to work.
See https://scons.org/doc/3.1.2/HTML/scons-user/ch07s03.html for more information.