30歳過ぎから工学 vol.2

http://d.hatena.ne.jp/j130s/ から移行しました.オープンソースロボットソフトウェア技術者兼主夫. 高校・大学学部文系-->何となくソフトウェア開発業-->退職・渡米,テキサス州でシステムズ工学修士取得,しかし実装の方が楽しいと気付き縁があったロボティクス業界で再就職.現在 Texas 州内の産業用オートメーションのスタートアップに California 州から遠隔勤務.

django をさくらインターネットで動かす,2012 年版

California 州は Palo Alto での仕事も一ヶ月半が経ちました.わけあって短期限定の仕事で,残りあと一ヶ月半,早くも前半終了.ネジを巻いてます.
西岸海洋性気候 (なつかしいね) のこの地は一年中気温が落ち着いていて雨もさほど降らず,灌漑によって緑も多く山も海も近いという,"穏やか" という言葉を絵に描いたような場所.勤務先には夏の間インターンで働きに来ている人が合計 47 名もいますが,みんな週末はここぞとばかりに遊びに行っている.一方私はというと,1.5 ヶ月後には仕事が失くなる身だし,人生のんびりしてる場合じゃない年齢でもあり,金曜夜だけぱーっとやって週末はじっとしてることが多いです.
ちなみに,昨年この地域 (San Francisco ベイエリア) で仕事した時に部屋さがしで大苦労した (過去の日記参照) わけですが,今回も最初は何十件もメイルした割に返事がもらえず苦労しました.結局同僚たちの成功体験に従い craigslist に広告を出し,連絡をくれた方の中で信頼できそうな方を訪ね,部屋をお借りすることに.引退前後の裕福な老夫婦で,毎晩のように netflix で映画を観てるのにイイ意味で巻き込まれてます.



さて,本題.python の web アプリケーション用フレイムワーク,django.アクセスできる権限が限定されるさくらインターネットですが,django はインストールできるらしい事が分かりました.しかも見つけた限り 2006/7 年にはやってる方が何人もいる.それから 5, 6 年経ってるものの,当時のドキュメントを参考になんとかインスコできたので,参照したペイジ達とハマりどころをメモ.実はかなりハマったのだけど,終わってみれば結局すべて WEB 上で他の方が書いてくださっていた...

利用環境: django 1.3.1, FreeBSD sakura.ne.jp 7.1-RELEASE-p16 FreeBSD 7.1-RELEASE-p16. sshさくらインターネットにつなぐ.

基本の流れはこの辺を参考に.
さくらインターネットでDjango from rokujyouhitoma's blog
さくらインターネット、CGIでDjangoを動かす from 30からのBlog
さくらインターネットでDjangoを動かしてみた from BTY備忘録

ただ,tricky なことを多少しなきゃいけないわけだが,上記ペイジ群は何故 trick が要るのかを省いている感があるので,その理由はこのページに学ぶ.
さくらのレンタルサーバで Python 外部モジュールを使う from EmptyPage.jp

以降は,上記ペイジ群にならって作業したが,すんなりいかなかった箇所のメモ.

  • I(ssue)-1. django-admin.py が失敗する


django-admin.py startproject mysite
django-admin.py: Command not found.
W(orkaround)-1. python ディレクトリが複数箇所にインスコされてないか調べ,そうなら望ましいもの除き rm で削除.私の場合は ~/local/lib/python と ~/local/lib/python2.7 が何故か存在したので,2.7 の方を削除.


ImportError: Could not import settings 'djangogtest.settings' (Is it on sys.path?): No module named djangogtest.settings

W-2. このページの記述にしたがい, django.cgi.htaccess を,プロジェクト名のフォルダの一階層目に配置する.正しいかどうかわからないが,django-admin.py は prj 名として指定されたフォルダの中に同名でもう一個フォルダを作りその中に settings.py 等を格納する,ように私の環境ではなっている.二階層目に django.cgi.htaccess を置いて色々設定をいじってもうまくいかなかった.結果としては次のような配置でうまくいうった:


/home/mydomain/www/django/djgtest/{ .htaccess, django.cgi }
/home/mydomain/www/django/djgtest/djgtest/{ settings.py, urls.py, wsgi.py }

  • I-3. manage.py がプロジェクトフォルダ (settings.py, urls.py, wsgi.py, __init__.py がある所) に生成されない

W-3. 原因は不明ですが,Django-1.4/django/conf/project_template/manage.py をコピペし,中の DJANGO_SETTINGS_MODULE のデフォ値を自分のプロジェクト名 (django.cgi ファイル内で記述した ***.settings 等と同様) に変更すれば使える (python manage.py runserver 等) ようになる.



(後記) 今回の記事は django の一部分が "動いた" というだけで,"web site 構築ができた" とは言っていません.実際,本稼働サイトの構築をさくらインターネット上で django を使って行うのは,諦めました.manage.py から setting ファイルが見えないという問題が数時間かけても解決できず,一筋縄ではなかった django 自体のインストールのどこかに欠陥があったのかも知れず,制限の多いさくら上ではこういった基本的なインストレーション関連で結局運用コストがかさみそうなので,無難に phpwordpress での構築を継続することにしました.残念.惜しむらくは,なぜ手元の linux で一度インストレーションを試して勝手を掴んでから本稼働サーバでの作業にしなかったのか...超基本だ.

Stanford 大学の自動操縦車 "Stanley" 現物に遭遇.同大学の車庫に,他の研究用の車と同じ感じでしまってありました.