Noxで環境変数を消してコマンドを実行するにはどうしたら良いか?
既存の環境変数を上書き指定するならsession.run(env={'FOO': 'bar'})
が使えますが削除はできません。session.run(env={'FOO': None})
はエラーになります。
またos.environ
で消しても効果はありません。コマンド実行時に適用される環境変数はsession
の中に保存されているためです。
session
の中に保存されている環境変数を直接操作することで、実行時に適用される環境変数を、削除も含めて自由に編集できるようです。
@nox.session
def good(session):
"""環境変数FOOを削除してコマンドを実行。"""
session.env.pop('FOO', None)
session.run('/usr/bin/printenv', external=True)