Index: zc.recipe.egg_/src/zc/recipe/egg/custom.py =================================================================== --- zc.recipe.egg_/src/zc/recipe/egg/custom.py (revision 102361) +++ zc.recipe.egg_/src/zc/recipe/egg/custom.py (working copy) @@ -31,7 +31,14 @@ python = options.get('python', buildout['buildout']['python']) options['executable'] = buildout[python]['executable'] + if not os.path.isfile(options['executable']): + raise zc.buildout.UserError( + 'The specified python executable :\n' + '%r\n' + "Doesn't exist.\n" + % options['executable']) + self.build_ext = build_ext(buildout, options) def update(self): Index: zc.recipe.egg_/src/zc/recipe/egg/egg.py =================================================================== --- zc.recipe.egg_/src/zc/recipe/egg/egg.py (revision 102361) +++ zc.recipe.egg_/src/zc/recipe/egg/egg.py (working copy) @@ -54,7 +54,14 @@ python = options.get('python', buildout['buildout']['python']) options['executable'] = buildout[python]['executable'] + if not os.path.isfile(options['executable']): + raise zc.buildout.UserError( + 'The specified python executable :\n' + '%r\n' + "Doesn't exist.\n" + % options['executable']) + def working_set(self, extra=()): """Separate method to just get the working set