【未解決】CloudSDKをアップデートしたら、PATHが最新のディレクトリにならない→対処療法あり

いつからそうなったのか、きっかけがわからないし、未だに解決していないのだが、起こったこと時系列でメモしてみる。

  1. OAuth の検証をしようと思い、とあるサンプルコードをダウンロードして、ローカル開発サーバで実行してみた。
  2. 認証処理の途中で、from ndb import なんたら の箇所でエラー。ndbというパッケージが見つからないといっている。
  3. エラーになっている箇所は、サンプルコード内ではなく、サンプルコードから呼ばれたauthモジュールの中だった。
  4. その箇所をみてみると、from google.appengine.ext.ndb … とするべきなのに、してない。そりゃみつからない。
  5. 最新版のバグなのかな?と思って調べると、Issueがあった。もう直っていて(https://code.google.com/p/webapp-improved/issues/detail?id=33&can=1&q=auth%20ndb)、最新版には反映されている(https://code.google.com/p/googleappengine/issues/detail?id=6279)という。
  6. webapp2.5.1には同梱されてると書いてあるので、自分の環境のgoogle-cloud-sdk配下を見てみると、果たして、webapp2.5.2がダウンロードされているではないか。
  7. それなのに何故そんなエラーが?と思い、PYTHONPATHを確認してみることに。
  8. 適当なサンプルコードの中で、"sys.path()"の中身を出力させてみると、バグが入り込んでるバージョン2.3にPATHが通っている!
  9. なんでだよーと思いつつ、SDKを最新版にアップデートしたときに、PATHの書き換えをするか?とプロンプトされた際に、間違えてNを選んでしまったのかな?と疑う。
  10. .bash_profileをチェック。
  11. その中で呼ばれてる、path.bash.inc と completion.bash.inc をチェックするも、知識不足で意味がわからない。
  12. google cloud SDKの再インストールを試みるも、解決せず。
  13. google cloud SDKを別ディレクトリにインストールしてみるも、解決せず。
  14. 新しいユーザを作り、1から開発環境をインストールしてみたら、パスが最新に通った。
  15. うまくいった環境との違いがわからない。
  16. 惨めな気持ちになりながら、現ユーザから新ユーザに開発環境を移す。


これは関係あるのかしら??
http://code.google.com/p/google-cloud-sdk/issues/detail?id=26

続報

上記リンクは関係大有りのようだ。
そして、WontFixで閉じられている。むう。

こういうの見つけた。
https://code.google.com/p/google-cloud-sdk/issues/detail?id=72
gcloud経由でupdateしたときと、GAELauncherのGUIからupdateしたときで、シンボリックリンクの張り方が異なる、という話なんだろうか。
そうであれば心当たりがある…今まではGUIからupdateしていたが、直近のupdateはgloudのコマンドから行ったのだ。

今のところの結論としては、updateするならやり方を変えるな。ということか。

続・続報

今回バージョンが最新にリンクされてないのは、webapp2なのだが、これは、gcloud経由でupdateしたか、GAELauncher経由でupdateしたかには関係なかったようだ。
app.yaml

libraries:
- name: webapp2
  version: "2.5.2"

の記述が無いと、いずれの方法でupdateしてあっても、webapp2.3にPATHが通っていた。