re:annkara

日々学んだことを書き留めておく。

Heroku+bottleを使ってみた。

 

Python - Heroku×bottleを使って4分33秒でWebアプリを公開する - Qiita

 

リンク先を参考にやってみた。

さすがに慣れてない部分があったので、5分でできなかったけどすぐにリリースまでできた。

まじでHerokuすごい。

 

リンク先にも書いてあったけど、Webサービスをリリースするってだいぶハードルが下がってきているんだと実感した。

商用とかエンタープライズ用とかでも耐えられるのかはわからないけど、

個人レベルのWebサービスをリリースするんだったら、全然構わないんじゃないかな。

 

以下、ちょっと詰まったところのメモ

 

①bottleのインストール

②ソース編集

③依存ライブラリの一覧作成

 

という手順でやるべきところを、

 

①ソース編集

②依存ライブラリの一覧作成

という手順でやってしまったため、Herokuにデプロイしても、

application errorHello Worldが出力されなかった。

 

bottleをインストールして再度デプロイしてもまだだめだったので、

なんでかなーっと思ったら、③の依存ライブラリの一覧にbottleってあったっけ??

と思い確認。

bottleらしきライブラリの記述ないじゃん...とおもいつつ、

再度③の手順を実施して、再度デプロイしたら、見事できました。

 

 pip freeze > requirements.txt 

でやっていることとして、今の環境にインストールされているパッケージの一覧を取得して、txtファイルに保存している...って感じらしく、別の環境ではこのtxtファイルを参照して、ライブラリを準備するらしい。

 

まだまだ全然知らない事が多いので、Heroku、もっと勉強したいです。

 

www.amazon.co.jp


Gitを触ってみた。

Git入門:Git初学習者のための効率的な学習方法を考えてみた – PAYFORWARD

これに沿ってみて、学習している最中。

 

takanabe/introduction-to-git · GitHub

とりあえず、ここまでやってみた感想。

 

業務でCVSを触ったことがあって、そのときはEclipse経由でリポジトリとのやりとりをしていたから、コマンドラインからの操作はちょっと疲れた。

 

ただ、CVSでの操作をしていたときにわけもわからずやっていた操作が、

今となってみるとこういうことやっていたんだなーと理解できた。

マージとかなんでHEADに移って実行しないといけないんだ??とか。

 

個人的に、GitのHEADは単なるポインタで、今作業しているブランチを指している、

という説明には非常に納得を持てた。

 

今の職場はメインフレームで開発していて、コードのバージョン管理なんて無いに等しくて、マージなんて手打ちで実行している状況だから、メインフレームの世界でもこういうツールが導入されたら開発効率があがるんじゃなかろうか。

 

そういや、来年度あたりからSVNでソース管理するみたいなこといってたから、

案外近いうちに導入されるのかも。

まぁ、使いこなせるかどうかは人次第な部分はあるけど。

 

一気にやったので後半の複数人でのリモートリポジトリの操作とかざっと見になっちゃったので、また気が向いたら見直そう。

 

あとは、GitHubのアカウントも作ってみたので、何か作ったらそっちにあげてみよう。

 

最近、ツールとか環境構築周りのことばっかりやってるから、コードも書かんと。

 年末年始にまとまった休みがとれるから、その期間で何か作れたらなぁー

 

 

 

virtualenvとか、pythonzの整理

Djangoチュートリアルをやったときに使用したvirtualenvとか、pythonzについて整理しておく。 

virtualenvとは

異なるバージョンのpythonを用いて開発したい場合に、そのバージョン、パッケージ専用の開発環境を構築するためのツール

例えば、2.x系と3.x系のバージョンで開発したいときに、システムに両方をインストールして使用することはできないから、virtualenvを用いて、各バージョン毎の開発環境を構築する、みたいな使い方が可能。

 

ざっくりとした表現だけど、各バージョン毎のpythonを適当なディレクトリに置いておいて、自分の使いたいプロジェクトではこのpythonで、みたいなことをコマンドで指定して使うっていうイメージなのかな。

とりあえず、コマンド操作とか使い方さえ慣れてしまえば、非常に便利そう。

 

virtualenvの仕組み的なことを書いてるブログを備忘録として貼っておく。

今の自分には全てはわからないけど、これくらいは理解したい。

virtualenv - def __mopemope__(self, *args, **kwargs):

 

こっちは基本的な使い方とか

Python VirtualEnv - ArchWiki

  

pythonzとは

virtualenvが開発環境の仮想化を手出すけるものであれば、こっちはpythonのバージョン管理やインストールを簡単に実行できますよっていうツール

 

easy_installとかpipとかと一緒なのかな??

ここらへんのバージョン管理とかパッケージ管理とかの仕組みがよくわかってないから、時間あったらちょっと整理してみよう。

home_brewとかもよくわかってないし。

よくわかんないけど、ブログとか見てるとそうやってるからやっとけばいいだろうという状態を抜け出したい。

 

というわけで、参考になりそうな記事を。

Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc)

 

デュアルディスプレイ、作業とか快適なんだけど、

心なしか首とか目が疲れる。

 

慣れの問題であればいいんだけど。。。

 

Djangoチュートリアル(1)

  転職したい!!

→ Web周りやりたい!! 

→ でもCOBOLしか仕事してない!!

→ なんか作ってアピールできるものがあれば!! 

→ よくわからんけど、Herokuでアプリ無料であげられるっぽい!! 

→ 言語とかどうしよう!! 

→ pythonやってるし、pythonで!! 

→ フレームワークDjangoで!!

 

みたいな流れでDjangoチュートリアル始めました。

開発環境周りは下の参考サイト見て構築しました。

よくわかんない事してましたが、とりあえず開発できる環境までは構築できたので、

詳しい事は後々勉強していこうと思います。

 

インストールしたDjangoのバージョンが1.9とかだったので、チュートリアルは英語の方を見てやってます。

バージョンが異なると日本語訳の手順では上手くいかないところがあるので。

 

とりあえず、チュートリアルの2回目まではやってみた。

 

なんだかわかったような、わからないようなふわっとした感じ。

とりあえずの感想としては、DBを強く意識した作りになっていて、

python的な表現であまりSQLとか意識しない(させない??)作りだと感じた。

 

以前、業務でJSPサーブレット(いまどき珍しいと思うのだけど)でごりごり

DBとやりとりしてJSPで結果表示するWebページを作ったのだけど、そのときは

SQLをごりごり書いてたから、ちょっと不思議な感じ。

 

フレームワーク自体が楽にアプリ開発を進めるためのツール的な位置づけだと思うから、こういうのは慣れの問題なんだろうなぁ。

 

とりあえず、いったん今日はここまでで。

 

※参考にしたサイト

Mountain Lion環境への「virtualenv」と「pythonz」のインストール手順 + 利用方法 - Qiita

 

pythonz + virtualenv + virtualenvwrapper でPython開発環境を作ってみる on MacOSX10.8 | ふぃふメモ

 

Django

The Web framework for perfectionists with deadlines | Django