New-Village

月間ブログ。だいたい1カ月に1回は更新しているようです。

NitrousでDjango (Python) 開発はじめます

Ruby on Railsは大好きなんですけど、本業が分析屋さんなので、やっぱりpythonがやりたいな…と思い、Nitrous+Herokuで開発してみることにしました。

はじめは、ローカル環境でPyCharm使ってKaggleのデータを機械学習させていたんですけど、やっぱりウェブサービスとして形に残らないと張り合いがないので、表題の通りとなりました。

f:id:New-Village:20151024141907p:plain

追記:過去に同じことをしようと試みていたみたいです…。もうすっかり忘れていましたが。

 

ワークスペースの作成とIDEの起動

DJangoコンテナーを作成します。Stack Templateの中からDjangoを選択して、コンテナ名に任意の名前を入力して、Nextを押します。

f:id:New-Village:20151024135127p:plain

次にワークスペースを作成します。ワークスペース名に任意の名前を入力して、Regionは近くの地域を選択、PlanはStarterを選択してから、Createを押します。
プランは後からアップグレードできるので、今回は、Starterではじめます。

f:id:New-Village:20151108104939p:plain

ワークスペースの作成が完了したらIDEを起動します。

f:id:New-Village:20151108105020p:plain

 

Python開発環境の構築

コーディングを始める前に開発環境を作成します。Pythonでは、virtualenvというツールPythonのバージョンとモジュール(ライブラリ?)の管理ができます。Nitrous.ioではvirtualenvがプリインストールされているので、このツールを使って仮想環境を構築します。

~ virtualenv --no-site-packages -p /usr/bin/python3.4 tutorial-env

"--no-site-packages"は、まっさらな仮想環境を作る(既にインストールされているモジュールをこれから作る仮想環境に取り込まないようにする)オプションです。
"-p /usr/bin/python3.4"は、対象ディレクトリに格納されているPythonで仮想環境を作るオプションです。指定しない場合は、"Python -V"で表示されるバージョンの仮想環境が作られれます。
"tutorial-env"は、仮想環境名です。好きな名前を定義してください。 
コマンドを実行すると、ルートディレクトリ配下に"tutorial"ディレクトリが作成されます。

 

仮想環境が作成されたら、以下のコマンドで仮想環境を立ち上げます。

~ source tutorial-env/bin/activate
(tutorial-env) ~

ターミナルの先頭に仮想環境名が表示されていれば起動は完了です。

 

NOTE:virtualenvについて、もう少し詳しい説明を読みたい方は、以下の記事を読んでみてください。

今日のPython: VIRTUALENV について

 

環境の確認と更新

開発環境の状態を確認してみます。まずは、Pythonのバージョンを確認します。

(tutorial-env)→ ~ python -V
Python 3.4.0

次にPythonのパッケージ管理ツール"pip"で、インストールされているパッケージの一覧を確認します。

(tutorial-env)→ ~ pip list -o
pip (Current: 1.5.4 Latest: 7.1.2)
setuptools (Current: 2.2 Latest: 18.5)

"list"オプションは、pipでインストールされているパッケージの一覧を表示するオプションです。

"-o"は、アップデート可能なバージョンを表示するためのオプションです。

 

非常に古いバージョンのパッケージがセットアップされているようですので、パッケージのアップデートを行います。全部最新にするようなデフォルトコマンドは無いので、今回は一つ一つアップデートしていきます。

(tutorial-env)→ ~ pip install -U pip
(tutorial-env)→ ~ pip install -U setuptools
(tutorial-env)→ ~ pip list
pip (7.1.2)
setuptools (18.5)

"install -U パッケージ名"で、インストールされているパッケージのアップグレードが可能です("-U"は"--upgrade"でも代替可能です)。

以上でセットアップは完了です。

 

NOTE:pipのパッケージを一括アップグレードする方法も一応あります。stackoverfolowの記事では、パイプでコマンドをつなげてワンライナーで記述する方法と、"pip-review"というパッケージをインストールする方法が紹介されています。

  

~  virtualenv --no-site-packages -p /usr/bin/python3.4 django-env
~  virtualenv --no-site-packages -p /usr/bin/python3.4 django-env
~  virtualenv --no-site-packages -p /usr/bin/python3.4 django-env
~  virtualenv --no-site-packages -p /usr/bin/python3.4 django-envvirtualenv --no-site-packages django-env