site パッケージや __future__ パッケージが見つからず python スクリプトが実行できない

先のエントリーと似た感じで、 Cygwin の話。 python スクリプトを実行するために python モジュールを入れたけれど、スクリプトを実行すると次のようなエラーが出て動かない。

'import site' failed; use -v for traceback
Traceback (most recent call last):
  File "/home/Administrator/repo", line 5, in <module>
    from __future__ import print_function
ImportError: No module named __future__

/usr/lib/python2.6 を見ると、そこには site.py だとかあるのに…?

こちらの結論は Windows 環境変数で PYTHONHOME に PYTHONPATH が設定されていたため、そちらを優先して見にいって文句を垂れていたというもの。
Cygwin 端末上でこれらの環境変数を削除してやったら動くようになりました。

$ unset PYTHONHOME; unset PYTHONPATH

Windows 側に導入されていたアプリケーションが Python を抱えていたようで、それが上記ふたつの環境変数を設定していたようです。いやー、わからんわー。難しいわー。

ということで Cygwin を使うときは、ホスト Windows で設定された環境変数が悪さをすることもあるっていう話でした。