2018年4月9日月曜日

Migration Python2.7への移行

1. 以前のプログラムのソースをダウンロードして、 app.xml を変更して deployする

503 python -V   // まず Mac にインストールされている python のバージョンを確認
504 pwd
505 curl https://sdk.cloud.google.com | bash // google cloud SDK のインストール
506 source ./.bash_profile 
510 cd google-cloud-sdk/  // 以前作成したアプリのダウンロードの準備
514 mkdir google-cloud
515 cd google-cloud
516 appcfg.py download_app -A snsimglink-hrd -V 1 ./ -oauth2  // appcfg.py がみつからない
517 python appcfg.py download_app -A snsimglink-hrd -V 1 ./ -oauth2 // 無駄な試み 
519 cd ..
520 cd google-cloud-sdk/
523 find . -name appcfg.py -print  // みあたらない
527 pip install google-cloud-storage // google-cloud-storage をいれればいいのか? 
528 sudo easy_install pip   // pip がなかったのでまず pip を install
529 pip install --upgrade google-cloud-storage

// https://cloud.google.com/appengine/docs/standard/python/download#appengine_sdk 
// appcfg.py を入手するには
// 以前の GoogleAppEngineLauncher-1.9.68.dmg 
// をインストールする必要があった
537 cd google-cloud 
// google cloud のコンソールで application の名前とバージョンを確認
540 appcfg.py -A museum-in-cloud-hrd -V 1 download_app ./museum-in-cloud
543 cd snsimglink/
547 dev_appserver.py . // 試しにローカルで動かそうとするもいろいろエラーで動かない
548 gcloud app deploy
549 cloudg auth login
550 cloudg app deploy
551 cloudg config set project museum-in-cloud-hrd

553 gcl app deoudloyp  // app.xmlappclitaion, version をコメントアウト
      ERROR: 
      (gcloud.app.deploy) The [application] field is specified in file ..
      (gcloud.app.deploy) The [version] field is specified in file ..
 ...
        This field is not used by gcloud and must be removed. 
    Versions are generated automatically by default but can also be manually specified 
    by setting the `--version` flag on individual command executions.

555 gcloud app deploy -v 2 // バージョン指定しないと deploy するたびに新しいバージョンになってしまう

2.  webapp を webapp2 にdjango を jinja2 に変更する

Python2.7 でも django はサポートされているようなので引き続き使おうとしたが
サンプルプログラムを動かすために SQL Cloud などの設定も必要

gusestbook のサンプルプログラムが更新されていて、ここで jinja2 が使われていたので、
jinja2 を利用することにした。
app.xml
---
#application: museum-in-cloud-hrd
#version: 1
#runtime: python
runtime: python27
api_version: 1
threadsafe: true

handlers:

- url: /blog
#  script: hw_blog.py
  script: hw_blog.app

libraries:
- name: webapp2
  version: latest
- name: jinja2
  version: latest
#- name: django
#  version: "1.2"

hw.py
---
#from google.appengine.ext import webapp
import webapp2
import jinja2
JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)+"/templates4j"),  //この環境固有
    extensions=['jinja2.ext.autoescape'],
    autoescape=True)
#from google.appengine.ext import vendor
#vendor.add('lib')

3.   jinja2 用に templateファルを変更する

 ifequal endifequal を if endif 
{% value %} を {{ value }} に変更
変数の中に html のタグなどを記述していた場合は {{ value | safe }} とする

4.  準備中

準備中
console
参考






Swift UI チュートリアル Loading watchOS が終わらない?

Loading watchOS が終わらない? ディスク容量の残量が少ないので不要なシュミレーターを削除したとこころ watchOSのものが全部なくなってしまっていた。 WatchOS を削除して再度インストールしても復活せず。 Create a new simulator で ...