チュートリアルが充実している訳ではないが、他のドキュメントは充実している気がするし、jinja2とかまぁ、他でも使っているもの結構あるし、開発が活発なので、これでいってみたくなった。
インストール---------------------------------
http://www.tipfy.org/wiki/guide/
のInstallationからbuildされたzipをダウンロードして解答すれば、基本的におわり。
dev_appserver.py /path/to/project/app
でサーバーを動かせる。これで、既にhello_worldのアプリが走っている。
extensionの追加----------------------------------
http://www.tipfy.org/wiki/extensions/
extensionは全て最初から入っている訳ではないので、
buildout.cfgのeggs=のところに必要なものを追加。
例えばtipfy.ext.aclなど。 使わないものは抜いていいらしい。
python2.5 bootstrap.py --distribute
は一回走らせればいいみたいだ。
その後
bin/buildout
を実行すると、extensionが追加/削除されている。
アップグレード-----------------------------------
http://www.tipfy.org/wiki/guide/upgrade/
project/versions.cfg
にバージョンが書かれているらしいのだが、[versions]以外は書かれていない。現状まだ問題はでてない。
基本はアップグレードするためには上記の
python2.5 bootstrap.py --distribute
bin/buildout
を繰り返せばいいみたい。
使われているライブラリについて-----------------------
babel:I18N, L10Nのためのライブラリ
jinja2:テンプレートエンジン
pytz:タイムゾーンライブラリ
werkzeug:WSGIのユーティリティモジュール
2010年7月31日土曜日
あった!
tipfy
http://code.google.com/p/tipfy/
http://www.tipfy.org/
はGAE用に作られたフレームワークなので、間違いなく動くはず。
http://www.tipfy.org/docs/api/tipfy.ext.acl.html
とaclが実装されているので、これを試してみる!
http://code.google.com/p/tipfy/
http://www.tipfy.org/
はGAE用に作られたフレームワークなので、間違いなく動くはず。
http://www.tipfy.org/docs/api/tipfy.ext.acl.html
とaclが実装されているので、これを試してみる!
2010年7月30日金曜日
gae と ACLについて
ユーザ認証でも、ACLはみんな搭載してほしいのだけど、みつからない...
一応まとめてみる。
--------------
com.google.appengine.api.users
http://code.google.com/intl/ja/appengine/docs/java/javadoc/com/google/appengine/api/users/package-summary.html
UserService を使用すると、ユーザーが Google アカウントを使用した認証を行っているかどうかを確認し、ユーザーのメール アドレスを取得できます。また、ユーザーがアプリケーションの管理者かどうかを確認することもできます。
というわけで、ACLはできないっぽい。
--------------
Django-nonrel
django.contrib.auth
管理画面を出すことは成功したが、AUTHにGroupsが出てこない。allbuttonpressedでも同様だった。
ので、Groupsに対応してないのではないか。
is_superuser, is_active, is_staffは使えるようだ。
http://bitbucket.org/wkornewald/django-nonrel/src/d69349741502/django/contrib/auth/tests/basic.py
を見ると、a.groups.all(), a_user_permissions.all()がある。怪しいけど...
--------------
app-engine-patch
https://code.google.com/p/app-engine-patch/
開発終了なのだが...管理画面にいくと、あっさりGroupsが存在してるーーーーーーー
うーーーん。開発終了してるので、使わない方がいいかなぁ。
まだ、使い方もよくわかっていないが...
---------------
kay-framework
http://kay-docs-jp.shehas.net/tutorial.html#id7
is_admin, is_anonymous(), is_authenticated()を使える
デコレータはlogin_required, admin_requiredのみ
usersを拡張して、デコレータ増やせばできそうな気がするけど...
---------------
pylons
http://pylonshq.com/
ではできるみたい
http://wiki.pylonshq.com/display/pylonscookbook/Another+approach+for+authorization+in+pylons+(decorator+based,+repoze.what+like)
だけど、gaeで動くかわかんないし...
--------------
ここらでよく考えてみる。
ManyToManyが問題で、ACLのおいしいところは、
Usersが複数のGroupsにも属すことが出来るというところか。
kayのところで書いたusersを拡張して、というやり方でいけるのかなぁ...試してみるべきか。
うまくいくなら、どれでもいいような気もしてきた。
動的にGroupつくれなくても、is_eigyoとか拡張できればそれはそれでありな気もするしなぁ...
--------------
ちょっと気になる...
http://sourceforge.jp/projects/secioss-auth/
「LDAPを使ったユーザ認証のライブラリやWebシングルサインオンを行うためのプラットフォームを開発します。Webシングルサインオン機能には、オープンソースソフトウェアのsimpleSAMLphp、PHP OpenID library、mod_auth_tktを利用しています。」
gaeでも使えるらしい...
OAuth
Twitterなどのリソースを使うときに必要そう。
pirate-politics
http://code.google.com/p/pirate-politics/wiki/GettingStarted
一応まとめてみる。
--------------
com.google.appengine.api.users
http://code.google.com/intl/ja/appengine/docs/java/javadoc/com/google/appengine/api/users/package-summary.html
UserService を使用すると、ユーザーが Google アカウントを使用した認証を行っているかどうかを確認し、ユーザーのメール アドレスを取得できます。また、ユーザーがアプリケーションの管理者かどうかを確認することもできます。
というわけで、ACLはできないっぽい。
--------------
Django-nonrel
django.contrib.auth
管理画面を出すことは成功したが、AUTHにGroupsが出てこない。allbuttonpressedでも同様だった。
ので、Groupsに対応してないのではないか。
is_superuser, is_active, is_staffは使えるようだ。
http://bitbucket.org/wkornewald/django-nonrel/src/d69349741502/django/contrib/auth/tests/basic.py
を見ると、a.groups.all(), a_user_permissions.all()がある。怪しいけど...
--------------
app-engine-patch
https://code.google.com/p/app-engine-patch/
開発終了なのだが...管理画面にいくと、あっさりGroupsが存在してるーーーーーーー
うーーーん。開発終了してるので、使わない方がいいかなぁ。
まだ、使い方もよくわかっていないが...
---------------
kay-framework
http://kay-docs-jp.shehas.net/tutorial.html#id7
is_admin, is_anonymous(), is_authenticated()を使える
デコレータはlogin_required, admin_requiredのみ
usersを拡張して、デコレータ増やせばできそうな気がするけど...
---------------
pylons
http://pylonshq.com/
ではできるみたい
http://wiki.pylonshq.com/display/pylonscookbook/Another+approach+for+authorization+in+pylons+(decorator+based,+repoze.what+like)
だけど、gaeで動くかわかんないし...
--------------
ここらでよく考えてみる。
ManyToManyが問題で、ACLのおいしいところは、
Usersが複数のGroupsにも属すことが出来るというところか。
kayのところで書いたusersを拡張して、というやり方でいけるのかなぁ...試してみるべきか。
うまくいくなら、どれでもいいような気もしてきた。
動的にGroupつくれなくても、is_eigyoとか拡張できればそれはそれでありな気もするしなぁ...
--------------
ちょっと気になる...
http://sourceforge.jp/projects/secioss-auth/
「LDAPを使ったユーザ認証のライブラリやWebシングルサインオンを行うためのプラットフォームを開発します。Webシングルサインオン機能には、オープンソースソフトウェアのsimpleSAMLphp、PHP OpenID library、mod_auth_tktを利用しています。」
gaeでも使えるらしい...
OAuth
Twitterなどのリソースを使うときに必要そう。
pirate-politics
http://code.google.com/p/pirate-politics/wiki/GettingStarted
django-nonrelをもう一度
authでgroupがでてこない...この機能が欲しいのに...と思い、もう一度一から順にやってみる。
allbuttonpressedから4つ落としてきて、testappにまず放り込む。
python manage.py runserver
で"It works"は現れるが、もちろん
http://localhost:8000/admin/
は機能しない。
まずは、authをいれたいので、settings.pyから'django.contrib.auth',のコメントアウトをはずす。
'django.contrib.addmin',を追加
urls.pyに
from django.contrib import admin
admin.autodiscover()
と
('^admin/', include(admin.site.urls)),
を追加。
管理画面はでるのだが、Usersしかでてこない。Groupsはどうしたー!!!!!
ちなみに、プロジェクトを新規につくっても、ユーザのデータベースは共通のようだ。
もう少し調べてみる。これがクリアしないと、どれで作ったらいいのか、わからーん。
allbuttonpressedを確認してみるのも手か?
allbuttonpressedから4つ落としてきて、testappにまず放り込む。
python manage.py runserver
で"It works"は現れるが、もちろん
http://localhost:8000/admin/
は機能しない。
まずは、authをいれたいので、settings.pyから'django.contrib.auth',のコメントアウトをはずす。
'django.contrib.addmin',を追加
urls.pyに
from django.contrib import admin
admin.autodiscover()
と
('^admin/', include(admin.site.urls)),
を追加。
管理画面はでるのだが、Usersしかでてこない。Groupsはどうしたー!!!!!
ちなみに、プロジェクトを新規につくっても、ユーザのデータベースは共通のようだ。
もう少し調べてみる。これがクリアしないと、どれで作ったらいいのか、わからーん。
allbuttonpressedを確認してみるのも手か?
microblogをやってみる。
Django X Python
にそって、microblogをやってみる。P.61の
$python manage.py startapp microblog
からだ。
it worksまではでるんだけど、cssがリンクされてない模様。ソースをみても、そうだから、まよしとする。
とりあえず、
http://yasakawa.blogspot.com/2010/06/django-nonreladmin-interface.html
を参考にしてみる。
うーーん。いろいろエラーが出てくるのだが、それはおいといても、
http://d.hatena.ne.jp/TaRO/20100726/1280156039
の人と同じようにcreatesuperuser
がない...と思ったら、settings.pyのコメントアウトされている
'django.contrib.auth'
を有効にしてmanage.py helpしたら使える!
ついでに 'django.contrib.sites','microblog'も付け加えた。
localhost:8081/admin/
で画面がでてきた。
ここで、manage.py createsuperuser
をして、ログインしてみた。
あれ?できない...
うーんと、こまったなぁ。ということで、もう一回整理。
GoogleAppEngineLauncherを使っているのに、manage.py createsuperuserとかって、トラブルのもと?
と思い、
GoogleAppEngineLauncherは停止にして、manage.py runserver
としてアクセス。ログインできた!
なんか、GoogleAppEngineLauncherとか使わずに素直にターミナルとTextMateとかで開発する方がいいのかな?
Eclipseだと、不要なエラー出し過ぎな気がする。コード補完とかは便利だけど、完璧ではないし...
にそって、microblogをやってみる。P.61の
$python manage.py startapp microblog
からだ。
it worksまではでるんだけど、cssがリンクされてない模様。ソースをみても、そうだから、まよしとする。
とりあえず、
http://yasakawa.blogspot.com/2010/06/django-nonreladmin-interface.html
を参考にしてみる。
うーーん。いろいろエラーが出てくるのだが、それはおいといても、
http://d.hatena.ne.jp/TaRO/20100726/1280156039
の人と同じようにcreatesuperuser
がない...と思ったら、settings.pyのコメントアウトされている
'django.contrib.auth'
を有効にしてmanage.py helpしたら使える!
ついでに 'django.contrib.sites','microblog'も付け加えた。
localhost:8081/admin/
で画面がでてきた。
ここで、manage.py createsuperuser
をして、ログインしてみた。
あれ?できない...
うーんと、こまったなぁ。ということで、もう一回整理。
GoogleAppEngineLauncherを使っているのに、manage.py createsuperuserとかって、トラブルのもと?
と思い、
GoogleAppEngineLauncherは停止にして、manage.py runserver
としてアクセス。ログインできた!
なんか、GoogleAppEngineLauncherとか使わずに素直にターミナルとTextMateとかで開発する方がいいのかな?
Eclipseだと、不要なエラー出し過ぎな気がする。コード補完とかは便利だけど、完璧ではないし...
Django-nonrel インストール
http://www.allbuttonspressed.com/projects/djangoappengine
にあるように、
django-nonrel
djangoappengine
djangotoolbox
django-testapp
をダウンロードして、django-testappを展開した中に
django-nonrel/django
djangotoolbox/djangotoolbox
djangoappengine
を放り込んだ。
それをEclipseに放り込んでみたのだが、エラーがでている。ほとんどi18n系のファイルだったが、あけてみると、エラーが消える。それでも、
django/core/urlresolvers.py
の中でfrom django.conf import settings
で「ないよー」といってくる。確かに調べてもない。が
http://djangoproject.jp/doc/ja/1.0/topics/settings.html
を見ると、「django.conf.settingsはモジュールではなくオブジェクトです。」と書いてあり、
django.conf.__init__.py
をみると、
settings = LazySettings()
となっている。ってことは問題なさそうだ。ほおっておこう。
にあるように、
django-nonrel
djangoappengine
djangotoolbox
django-testapp
をダウンロードして、django-testappを展開した中に
django-nonrel/django
djangotoolbox/djangotoolbox
djangoappengine
を放り込んだ。
それをEclipseに放り込んでみたのだが、エラーがでている。ほとんどi18n系のファイルだったが、あけてみると、エラーが消える。それでも、
django/core/urlresolvers.py
の中でfrom django.conf import settings
で「ないよー」といってくる。確かに調べてもない。が
http://djangoproject.jp/doc/ja/1.0/topics/settings.html
を見ると、「django.conf.settingsはモジュールではなくオブジェクトです。」と書いてあり、
django.conf.__init__.py
をみると、
settings = LazySettings()
となっている。ってことは問題なさそうだ。ほおっておこう。
ACLはどのようになるのか...
Kay Frameworkで認証はできるんだけど、ACLに関する記事がまるででてこない。
使えない?
djangoだとロールベースの権限管理/グループができるようだが、これはGAEで動くのだろうか...
試すために、django-nonrelを試してみることにする。
使えない?
djangoだとロールベースの権限管理/グループができるようだが、これはGAEで動くのだろうか...
試すために、django-nonrelを試してみることにする。
2010年7月24日土曜日
viewのクラスによる実装
チュートリアルではviews.pyの中に
def index(request):
asdfjkl;ajsdklf;a
asdjkf;ajsdkf;l
return asdfjka;lsjdfkl;
と書いてあったが、クラスでの実装もできるようだ。その場合の注意点
class MainHandeler(BaseHandler):
def prepare(self)
#準備のコード
def get(self):
return asdjfkl;
def post(self):
return asjdkfl;ajskl;df
のように書いて、
main_handler = MainHanlder()
のように書いておく。
そして、urls.pyに
view_groups = [
ViewGroup(
Rule('/', endpoint='index', view='myapp.views.index'),
Rule('/test', endpoint='main_handler', view='myapp.views.main_handler')
),
CategoryCRUDViewGroup(),
]
のようにかけば動いた。
def index(request):
asdfjkl;ajsdklf;a
asdjkf;ajsdkf;l
return asdfjka;lsjdfkl;
と書いてあったが、クラスでの実装もできるようだ。その場合の注意点
class MainHandeler(BaseHandler):
def prepare(self)
#準備のコード
def get(self):
return asdjfkl;
def post(self):
return asjdkfl;ajskl;df
のように書いて、
main_handler = MainHanlder()
のように書いておく。
そして、urls.pyに
view_groups = [
ViewGroup(
Rule('/', endpoint='index', view='myapp.views.index'),
Rule('/test', endpoint='main_handler', view='myapp.views.main_handler')
),
CategoryCRUDViewGroup(),
]
のようにかけば動いた。
複数アプリケーションを考える
テンプレートに関してはプロジェクト直下にtemplateフォルダを作り、settings.pyに
TEMPLATE_DIRS = (
'templates',
)
とすることで、共通のテンプレートを使えそうだ。
各アプリケーションはそのフォルダのテンプレートフォルダを使えばいい。
そして、{% include {{filename}} %}の形でrender_to_response('main.html',{'filename':'header.html'})などとすればすてき。
モデルについてはまだ不明...
TEMPLATE_DIRS = (
'templates',
)
とすることで、共通のテンプレートを使えそうだ。
各アプリケーションはそのフォルダのテンプレートフォルダを使えばいい。
そして、{% include {{filename}} %}の形でrender_to_response('main.html',{'filename':'header.html'})などとすればすてき。
モデルについてはまだ不明...
Kay Framework チュートリアルをやってみる。
http://kay-docs-jp.shehas.net/tutorial.html
ユーザの認証
myapp.modelsにclassを定義して、
settings.pyで
AUTH_USER_MODEL = 'myapp.models.MyUser'
の様にしているが、複数アプリケーションになったときはどうなるんだろう?
settings.pyで設定されているから、他アプリケーションでも利用できるのか?
モデルを設定すると、Entity Kindとしてはmyapp_commentのように作られているので、これは便利!
アプリケーションごとに衝突を考えなくてもOKってことだね。
とりあえず、国際化のところで.poというファイルがでてきたので、
eclipseにgtedというプラグインもいれてみた。
http://www.gted.org/
チュートリアルにかいてなかったのだが、settings.pyを
INSTALLED_APPS = (
'kay.auth',
'kay.i18n',
'myapp',
)
の様に追加しないと動かなかった。
ユーザの認証
myapp.modelsにclassを定義して、
settings.pyで
AUTH_USER_MODEL = 'myapp.models.MyUser'
の様にしているが、複数アプリケーションになったときはどうなるんだろう?
settings.pyで設定されているから、他アプリケーションでも利用できるのか?
モデルを設定すると、Entity Kindとしてはmyapp_commentのように作られているので、これは便利!
アプリケーションごとに衝突を考えなくてもOKってことだね。
とりあえず、国際化のところで.poというファイルがでてきたので、
eclipseにgtedというプラグインもいれてみた。
http://www.gted.org/
チュートリアルにかいてなかったのだが、settings.pyを
INSTALLED_APPS = (
'kay.auth',
'kay.i18n',
'myapp',
)
の様に追加しないと動かなかった。
2010年7月22日木曜日
Kay Frameworkインストールして使ってみる
参考
http://kay-docs-jp.shehas.net/tutorial.html
http://code.google.com/p/kay-framework/downloads/list
から
kay-1.0.0.tar.gz
をダウンロード
eclipseのworkspaceを
/Users/sammy/Documents/workspace
に設定していたので、
そこに
/Users/sammy/Documents/workspace/kay-1.0.0
と解凍する。
terminalで
/Users/sammy/Documents/workspace
に移動して、
python kay-1.0.0/manage.py startproject kaytestproject
とすると、
/Users/sammy/Documents/workspace/kaytestproject
ができた。
eclipseにプロジェクトとして登録するのに、
New-Project-Pydev Google App Engine Project
Projectnameをkaytestproject
Google App Engine Directoryには/usr/local/google_appengine
What's the application id registered for this project?はkaytestproject
From which template do you want to create your new Google App Project?
はEmpty Project
にすると、無事に登録ができた。
srcフォルダができているが、いらないので、削除した。--すると、あとで怒られるので消さない方がいい。
kaytestprojectに移動して
python manage.py startapp myapp
としてmyappを作る。Eclipseのプロジェクトをリフレッシュで現れてくる。
チュートリアルでtreeが使われているので、ここで
sudo port install tree
として使えるようにしておいた。
setting.pyに登録。チュートリアルにあわせて
INSTALLED_APPS = (
'kay.auth',
'myapp',
)
APP_MOUNT_POINTS = {
'myapp':'/',
}
とした。Kay Frameworkではプロジェクトの下にたくさんのアプリケーションを作る、という仕組みのようだ。
python manage.py runserver
とすれば、
http://localhost:8080
でアクセスできた。が、Ctrl-Cでストップ。
GoogleAppEngineLauncherに登録してみる。Add Exsisting Project...で登録。
準備ができたようだ。
http://kay-docs-jp.shehas.net/tutorial.html
http://code.google.com/p/kay-framework/downloads/list
から
kay-1.0.0.tar.gz
をダウンロード
eclipseのworkspaceを
/Users/sammy/Documents/workspace
に設定していたので、
そこに
/Users/sammy/Documents/workspace/kay-1.0.0
と解凍する。
terminalで
/Users/sammy/Documents/workspace
に移動して、
python kay-1.0.0/manage.py startproject kaytestproject
とすると、
/Users/sammy/Documents/workspace/kaytestproject
ができた。
eclipseにプロジェクトとして登録するのに、
New-Project-Pydev Google App Engine Project
Projectnameをkaytestproject
Google App Engine Directoryには/usr/local/google_appengine
What's the application id registered for this project?はkaytestproject
From which template do you want to create your new Google App Project?
はEmpty Project
にすると、無事に登録ができた。
srcフォルダができているが、いらないので、削除した。--すると、あとで怒られるので消さない方がいい。
kaytestprojectに移動して
python manage.py startapp myapp
としてmyappを作る。Eclipseのプロジェクトをリフレッシュで現れてくる。
チュートリアルでtreeが使われているので、ここで
sudo port install tree
として使えるようにしておいた。
setting.pyに登録。チュートリアルにあわせて
INSTALLED_APPS = (
'kay.auth',
'myapp',
)
APP_MOUNT_POINTS = {
'myapp':'/',
}
とした。Kay Frameworkではプロジェクトの下にたくさんのアプリケーションを作る、という仕組みのようだ。
python manage.py runserver
とすれば、
http://localhost:8080
でアクセスできた。が、Ctrl-Cでストップ。
GoogleAppEngineLauncherに登録してみる。Add Exsisting Project...で登録。
準備ができたようだ。
フレームワークについて
DjangoがGAEに入っているからといって、それを全て利用できるわけではない。
なぜなら、モデルの考え方が異なっているから、例えば強力な管理画面などは利用できない。
利用するためには、
app-engine-patch
などの利用もgaeのdocにかいてあるが、これはもうdiscontinueであり、
django-nonrel+djangoappengine+django-testapp
を使えとなっている。
ちなみに、前者の方針はdjangoがGAEで動くようにパッチを当てる、という考え方であり、
後者は、Djangoで非リレーショナルDBをサポートし、その中にGAEがある、という考え方らしい。
djangoの最新版を使うためのやり方はgaeのdocに書いてある。
ファイル数の制限などがあるため、zipimportが鍵になりそうだ。
他にGAE専用のフレームワークというのもいろいろあるようだ。
その中でKay Frameworkというのがあるので、これを試してみようかと思う。
参考:【特集】Google App Engineで開発するためのフレームワーク × 16 + α
http://coolcoding.com/2010/01/frameworks_for_gae/
なぜなら、モデルの考え方が異なっているから、例えば強力な管理画面などは利用できない。
利用するためには、
app-engine-patch
などの利用もgaeのdocにかいてあるが、これはもうdiscontinueであり、
django-nonrel+djangoappengine+django-testapp
を使えとなっている。
ちなみに、前者の方針はdjangoがGAEで動くようにパッチを当てる、という考え方であり、
後者は、Djangoで非リレーショナルDBをサポートし、その中にGAEがある、という考え方らしい。
djangoの最新版を使うためのやり方はgaeのdocに書いてある。
ファイル数の制限などがあるため、zipimportが鍵になりそうだ。
他にGAE専用のフレームワークというのもいろいろあるようだ。
その中でKay Frameworkというのがあるので、これを試してみようかと思う。
参考:【特集】Google App Engineで開発するためのフレームワーク × 16 + α
http://coolcoding.com/2010/01/frameworks_for_gae/
Imgについて
Imgages APIはローカル環境では動かないらしい。
ローカルで動作確認を行いたい場合は、
Python Imaging Libraryというライブラリをインストールしないといけないらしい。
http://code.google.com/intl/ja/appengine/docs/images/installingPIL.html
ところが、Leopardだと、ここに書かれているdmgだと「pythonはいってないよー」といわれてしまう。
ので、ソースからインストールしてみる。
http://www.pythonware.com/products/pil/
から最新版は1.1.7なのだが、
http://pythonmac.org/packages/py25-fat/index.html
のインストーラが1.1.6だったので、1.1.6をダウンロード
ダウンロードしたtar.gzを展開したディレクトリにターミナルでいき、
$sudo python setup.py install
(xcodeが必要っぽい)
JPEG support not availableとPIL 1.1.6 BUILD SUMMARYに出てきたので、
http://www.ijg.org/
からjpegsrc.v8b.tar.gz
をダウンロードして展開したディレクトリにターミナルでいき
./configure
make
make test
sudo make install
をしてインストールしてから、
1.1.6のbuildディレクトリを削除して、
sudo rm -fr build
もう一度
sudo python setup.py install
とする。
もう一度、ログのPIL 1.1.6 BUILD SUMMARYをみると、JPEG support okとなった。
参考
http://nakaken.mediacat-blog.jp/e43462.html
その後Eclipseで
Preference:Pydev:Interpreter - Python
でLibrariesに
/Library/Python/2.5/site-packages/PIL
を追加した。(New Folder)...これだと動かない...
うーーん。
port でインストールしてみるか...
一応
http://d.hatena.ne.jp/shohu33/20080818/1219078757
のように
sudo port install jpeg
sudo port install freetype
をして、あ、でも結局
sudo python setup.py install
にするのか....
あ、ひょっとして、GoogleAppEngineLauncherでサーバ起動しなおしてないからか?
と起動しなおすと、めでたしめでたし!
ローカルで動作確認を行いたい場合は、
Python Imaging Libraryというライブラリをインストールしないといけないらしい。
http://code.google.com/intl/ja/appengine/docs/images/installingPIL.html
ところが、Leopardだと、ここに書かれているdmgだと「pythonはいってないよー」といわれてしまう。
ので、ソースからインストールしてみる。
http://www.pythonware.com/products/pil/
から最新版は1.1.7なのだが、
http://pythonmac.org/packages/py25-fat/index.html
のインストーラが1.1.6だったので、1.1.6をダウンロード
ダウンロードしたtar.gzを展開したディレクトリにターミナルでいき、
$sudo python setup.py install
(xcodeが必要っぽい)
JPEG support not availableとPIL 1.1.6 BUILD SUMMARYに出てきたので、
http://www.ijg.org/
からjpegsrc.v8b.tar.gz
をダウンロードして展開したディレクトリにターミナルでいき
./configure
make
make test
sudo make install
をしてインストールしてから、
1.1.6のbuildディレクトリを削除して、
sudo rm -fr build
もう一度
sudo python setup.py install
とする。
もう一度、ログのPIL 1.1.6 BUILD SUMMARYをみると、JPEG support okとなった。
参考
http://nakaken.mediacat-blog.jp/e43462.html
その後Eclipseで
Preference:Pydev:Interpreter - Python
でLibrariesに
/Library/Python/2.5/site-packages/PIL
を追加した。(New Folder)...これだと動かない...
うーーん。
port でインストールしてみるか...
一応
http://d.hatena.ne.jp/shohu33/20080818/1219078757
のように
sudo port install jpeg
sudo port install freetype
をして、あ、でも結局
sudo python setup.py install
にするのか....
あ、ひょっとして、GoogleAppEngineLauncherでサーバ起動しなおしてないからか?
と起動しなおすと、めでたしめでたし!
2010年7月21日水曜日
Pydev import unresolved error
Pydevではこのエラーが割とでるらしい。
解決できればいいのだが、とりあえず、
Preference-Pydev-Editor-CodeAnalysis-Imports
でImport not foundをIgnoreにすればエラーにはならない。infosという扱いになる。
解決できればいいのだが、とりあえず、
Preference-Pydev-Editor-CodeAnalysis-Imports
でImport not foundをIgnoreにすればエラーにはならない。infosという扱いになる。
文字コード...ってことは化けたわけだが
u'日本語'
のようにかいてあるものもあるが、
http://d.hatena.ne.jp/momo_dev/20091230/p1
によれば、UTF-8で保存されていれば、uはいらないようだ。
値を
str1 = self.request.get('text1')
等と受取るときには、
str1.encode("utf-8")
とすることで正常に表示されるようだ
あと、レイアウト用に部分を書き出したhtmlファイルをつくると、aptanaは内容から勝手にs-jisと判断してしまった。
ファイルの右クリックでUTF-8に指定しなくてはいけないが、全部UTF-8でやってほしいものだが...
のようにかいてあるものもあるが、
http://d.hatena.ne.jp/momo_dev/20091230/p1
によれば、UTF-8で保存されていれば、uはいらないようだ。
値を
str1 = self.request.get('text1')
等と受取るときには、
str1.encode("utf-8")
とすることで正常に表示されるようだ
あと、レイアウト用に部分を書き出したhtmlファイルをつくると、aptanaは内容から勝手にs-jisと判断してしまった。
ファイルの右クリックでUTF-8に指定しなくてはいけないが、全部UTF-8でやってほしいものだが...
2010年7月20日火曜日
ここまでのまとめ
設定さえすれば、わりと使いやすい環境になる。
使うだろうファイルタイプは
.py, .html, .yaml, .css
くらいだろう。
yamlエディタも気がむいたらいれたらいいかもしれない。
一度サーバーを起動すると、それ以降は、ブラウザのリロードにて確認ができる。
ちなみに、コンソールの赤い■を押せば、サーバーをシャットダウンすることもできそうだ。(Ctrl-Cではいかない)
と思い、新しいアプリを簡単につくれるか試すと...うまくいかない。
New-Project-Pydev Google App Engine Projectでtemplateはhello worldかなにかをを選んだ後、
・srcの中にあるapp.yaml, helloworld.pyをプロジェクト直下に移動
・run-run configurations...
をして、既存のものを複製、Name:, Project(main tab),workspace_loc:の後(Arguments) を修正すると、一応使える。
もう少し簡単にできないのか...
プロジェクトを作るところまではeclipseで作って、ファイルを移動することなしに、
GoogleAppEngineLauncherでAdd Existing Applicationを使って、登録した方がスマートかもしれない。
この時のPathは
~/Documents/workspace/******/src/
となる。これでいくか...
使うだろうファイルタイプは
.py, .html, .yaml, .css
くらいだろう。
yamlエディタも気がむいたらいれたらいいかもしれない。
一度サーバーを起動すると、それ以降は、ブラウザのリロードにて確認ができる。
ちなみに、コンソールの赤い■を押せば、サーバーをシャットダウンすることもできそうだ。(Ctrl-Cではいかない)
と思い、新しいアプリを簡単につくれるか試すと...うまくいかない。
New-Project-Pydev Google App Engine Projectでtemplateはhello worldかなにかをを選んだ後、
・srcの中にあるapp.yaml, helloworld.pyをプロジェクト直下に移動
・run-run configurations...
をして、既存のものを複製、Name:, Project(main tab),workspace_loc:の後(Arguments) を修正すると、一応使える。
もう少し簡単にできないのか...
プロジェクトを作るところまではeclipseで作って、ファイルを移動することなしに、
GoogleAppEngineLauncherでAdd Existing Applicationを使って、登録した方がスマートかもしれない。
この時のPathは
~/Documents/workspace/******/src/
となる。これでいくか...
Hello, World2,3,4,5,6,7
Step 2:
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/usingwebapp.html
をやってみる。
helloworld.pyをいじり始めると、白色で入力される文字がある...困った...背景色をまずいじってみよう。
Preference-General-Editors-Text Editors のAppearance color optionsでSystemDefaultを外して、Colorを黒にしてみる。黒文字があったらどうなるんだ...と一抹の不安はあるが、これでいってみる。
Current Line Highlightも見づらいので、黒に向けて50%くらいのところにしてみた。
yamlが今度まずくなった...黒字なんだもの...
とりあえずaptana editorにアサインすることで白字に対応した。
とりあえず、無事にHello, webapp World!と表示された。
Step 3:
次は
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/usingusers.html
をやってみる。
前回ためしにやってみたときには、普通のテキストエディタでやっていたのだが、コードヒントはやはりすばらしい!
ログイン作業をすると、
Hello, xxxxxxxと表示された。
Step 4:CGI
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/handlingforms.html
をやってみる。
データの受け渡し成功
Step 5:データストア
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/usingdatastore.html
をやってみる。
問題なし!データストアもさくっといける。
Step 6:テンプレート
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/templates.html
をやってみる。
OK!
Step 7:CSS
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/staticfiles.html
無事に動く。
というわけで、
cssや、html,yamlがきても、割とみやすいし、使いやすい環境になったかと思う。
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/usingwebapp.html
をやってみる。
helloworld.pyをいじり始めると、白色で入力される文字がある...困った...背景色をまずいじってみよう。
Preference-General-Editors-Text Editors のAppearance color optionsでSystemDefaultを外して、Colorを黒にしてみる。黒文字があったらどうなるんだ...と一抹の不安はあるが、これでいってみる。
Current Line Highlightも見づらいので、黒に向けて50%くらいのところにしてみた。
yamlが今度まずくなった...黒字なんだもの...
とりあえずaptana editorにアサインすることで白字に対応した。
とりあえず、無事にHello, webapp World!と表示された。
Step 3:
次は
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/usingusers.html
をやってみる。
前回ためしにやってみたときには、普通のテキストエディタでやっていたのだが、コードヒントはやはりすばらしい!
ログイン作業をすると、
Hello, xxxxxxxと表示された。
Step 4:CGI
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/handlingforms.html
をやってみる。
データの受け渡し成功
Step 5:データストア
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/usingdatastore.html
をやってみる。
問題なし!データストアもさくっといける。
Step 6:テンプレート
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/templates.html
をやってみる。
OK!
Step 7:CSS
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/staticfiles.html
無事に動く。
というわけで、
cssや、html,yamlがきても、割とみやすいし、使いやすい環境になったかと思う。
Hello, World
EclipseでFile-New-Project
から
Pydev Google App Engine Project
を選択
Project nameをHelloworld
Interpreterが設定されていないので、クリック、AutoConfigとした
Google App Engine Directoryとして
/usr/local/bin
とするとおこられたので、元の場所である
/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/
を直接入力してFinish
!This kind of project is associated with the Pydev perspective. Do you want to open this perspective now?
と出たので、Remember my decisionとしてYESにした。
から
Pydev Google App Engine Project
を選択
Project nameをHelloworld
Interpreterが設定されていないので、クリック、AutoConfigとした
Google App Engine Directoryとして
/usr/local/bin
とするとおこられたので、元の場所である
/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/
を直接入力してFinish
!This kind of project is associated with the Pydev perspective. Do you want to open this perspective now?
と出たので、Remember my decisionとしてYESにした。
環境
いままで使ってきたMacBookが調子が悪いので、MacBookPro17(2.66 Intel Core2Duo 4GM)で開発環境を作っていく。
SnowLeopardにしていなかったのだが...みあたらない...とりあえず、SnowLeopardのままでいこう。
ターミナルで
python -V
にすると、2.5.1とのことで、GoogleAppEngineでは2.5.2をサポートとある。
http://code.google.com/intl/ja-JP/appengine/docs/whatisgoogleappengine.html
2.5.2はbugfix onlyなので、とりあえずこれでいってみよう。
Google App Engine SDK for PythonからGoogleAppEngineLauncher-1.3.5.dmgをダウンロードした。
http://www.eclipse.org/downloads/
からEclipse IDE for Java EE Developersの64bit版(3.6)をダウンロード。Classicでもいいかな?と思ったが、とりあえず、一番上ので問題はないだろう。
aptanaも考えたのだが、プラグインでもいいか、とeclipseにした。
Google Plugin For Eclipseをインストールする。
http://code.google.com/intl/ja/eclipse/
からクイックスタートガイドを参考にし、
Help->Install New Software...
から
http://dl.google.com/eclipse/plugin/3.6
と入力し、Plugin,SDKsにチェックを入れ、nextを数回で、restartした。(以外と時間かかったなぁ)
次は同様にして
http://pydev.org/updates
と入力し、PyDev,PyDev Mylyn Integration(optional)にチェックを入れてインストール。
ついでにaptana Eclipse Plug-inもインストール。
http://download.aptana.com/studio3/plugin/install
Aptana Studio3にチェックを入れてインストール
(betaだが、3をいれてみた..現時点でJavaScript Debugging, Contest assist for Ruby and PHP, Synchronization to FTP Sites, A First-Use Experience that will walk you thorough the setup of the tools you need, Built in DocumentationがNotable Missing Featuresとなっている)
一通りインストールしたところで、
環境設定-Genearal-Keys Scheme:Emacs
を変更しておいた。
あと、GAEではUTF-8なので、
環境設定-General-WorkspaceのText file encodingでOtherとしてUTF-8を選んだ。
P.S.
・UMLを入力できるのをいれておきたかったが、適当なのが見つからなかったので、保留とした。
・pythonで使う場合はGoogle Plugin for Eclipseっていらないのか???
SnowLeopardにしていなかったのだが...みあたらない...とりあえず、SnowLeopardのままでいこう。
ターミナルで
python -V
にすると、2.5.1とのことで、GoogleAppEngineでは2.5.2をサポートとある。
http://code.google.com/intl/ja-JP/appengine/docs/whatisgoogleappengine.html
2.5.2はbugfix onlyなので、とりあえずこれでいってみよう。
Google App Engine SDK for PythonからGoogleAppEngineLauncher-1.3.5.dmgをダウンロードした。
http://www.eclipse.org/downloads/
からEclipse IDE for Java EE Developersの64bit版(3.6)をダウンロード。Classicでもいいかな?と思ったが、とりあえず、一番上ので問題はないだろう。
aptanaも考えたのだが、プラグインでもいいか、とeclipseにした。
Google Plugin For Eclipseをインストールする。
http://code.google.com/intl/ja/eclipse/
からクイックスタートガイドを参考にし、
Help->Install New Software...
から
http://dl.google.com/eclipse/plugin/3.6
と入力し、Plugin,SDKsにチェックを入れ、nextを数回で、restartした。(以外と時間かかったなぁ)
次は同様にして
http://pydev.org/updates
と入力し、PyDev,PyDev Mylyn Integration(optional)にチェックを入れてインストール。
ついでにaptana Eclipse Plug-inもインストール。
http://download.aptana.com/studio3/plugin/install
Aptana Studio3にチェックを入れてインストール
(betaだが、3をいれてみた..現時点でJavaScript Debugging, Contest assist for Ruby and PHP, Synchronization to FTP Sites, A First-Use Experience that will walk you thorough the setup of the tools you need, Built in DocumentationがNotable Missing Featuresとなっている)
一通りインストールしたところで、
環境設定-Genearal-Keys Scheme:Emacs
を変更しておいた。
あと、GAEではUTF-8なので、
環境設定-General-WorkspaceのText file encodingでOtherとしてUTF-8を選んだ。
P.S.
・UMLを入力できるのをいれておきたかったが、適当なのが見つからなかったので、保留とした。
・pythonで使う場合はGoogle Plugin for Eclipseっていらないのか???
登録:
投稿 (Atom)