Você é muito próximo: não cite PYTHONPATH, como mostrado abaixo.
Defaults env_keep += PYTHONPATH
Você não precisa modificar o env_reset.
Você também pode considerar não alterar os sudoers. Em vez disso, considere invocar sudo assim:
sudo PYTHONPATH=$PYTHONPATH <command...>
Isso também funciona com o PATH e outras variáveis. Quando expandido pelo shell, você obtém caminhos literais como se tivesse digitado
sudo PYTHONPATH=/home/www/python_commons:... <command>
mas somente quando você solicitar explicitamente para passá-lo (ao contrário de implicitamente com env_keep).
Isso funciona porque o sudo permite que você passe variáveis de ambiente existentes, o que requer env_keep, ou que especifique variáveis env para serem definidas apenas para o comando sudo, que não requer env_keep. Considere isto:
snafu$ sudo grep Def /etc/sudoers
Defaults env_reset
Defaults env_keep += SE_ok
Defaults env_keep += SE_ik
snafu$ SE_o=outer SE_ok=outer_keep sudo SE_i=inner SE_ik=inner_keep env | grep ^SE
SE_ok=outer_keep
SE_ik=inner_keep
SE_i=inner
Este exemplo demonstra as variáveis de configuração no ambiente de chamada de sudo (externo) e no próprio sudo (interno). Note que SE_i é impresso mesmo que não haja entrada env_keep para ele. (env_keep para SE_ik é desnecessário.) Observe também que env_keep se aplica a variáveis externas (SE_o não é impresso).
[Invocações de comandos do para 'var = val comando' são equivalentes a (export var = val; comando). Ou seja, eles configuram uma ou mais variáveis de ambiente apenas para esse comando.]