【未解決】CloudSDKをアップデートしたら、PATHが最新のディレクトリにならない→対処療法あり
いつからそうなったのか、きっかけがわからないし、未だに解決していないのだが、起こったこと時系列でメモしてみる。
- OAuth の検証をしようと思い、とあるサンプルコードをダウンロードして、ローカル開発サーバで実行してみた。
- 認証処理の途中で、from ndb import なんたら の箇所でエラー。ndbというパッケージが見つからないといっている。
- エラーになっている箇所は、サンプルコード内ではなく、サンプルコードから呼ばれたauthモジュールの中だった。
- その箇所をみてみると、from google.appengine.ext.ndb … とするべきなのに、してない。そりゃみつからない。
- 最新版のバグなのかな?と思って調べると、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)という。
- webapp2.5.1には同梱されてると書いてあるので、自分の環境のgoogle-cloud-sdk配下を見てみると、果たして、webapp2.5.2がダウンロードされているではないか。
- それなのに何故そんなエラーが?と思い、PYTHONPATHを確認してみることに。
- 適当なサンプルコードの中で、"sys.path()"の中身を出力させてみると、バグが入り込んでるバージョン2.3にPATHが通っている!
- なんでだよーと思いつつ、SDKを最新版にアップデートしたときに、PATHの書き換えをするか?とプロンプトされた際に、間違えてNを選んでしまったのかな?と疑う。
- .bash_profileをチェック。
- その中で呼ばれてる、path.bash.inc と completion.bash.inc をチェックするも、知識不足で意味がわからない。
- google cloud SDKの再インストールを試みるも、解決せず。
- google cloud SDKを別ディレクトリにインストールしてみるも、解決せず。
- 新しいユーザを作り、1から開発環境をインストールしてみたら、パスが最新に通った。
- うまくいった環境との違いがわからない。
- 惨めな気持ちになりながら、現ユーザから新ユーザに開発環境を移す。
これは関係あるのかしら??
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が通っていた。