TechBox

スタートアップで働くRails&機械学習エンジニアのブログ。時々GT-Rと旅行。

PyCharmでAnaconda(Python)とDjangoの開発環境を構築する  その2

PyCharmのGUIのみでAnacondaの仮想環境と、Djangoの開発環境を作っていきます。
前提として、

  • Anacondaはインストール済み
  • 例題のプロジェクト名はskyline
  • 例題のアプリ名はgtr
  • 例題の仮想環境名はnissan

と想定します。

Anacondaのインストールはこちらをご覧下さい。 www.techbox.jp

  1. PyCharmを起動して、[Create New Project]を選択します。 f:id:daisuke-jp:20170921103608p:plain

  2. 左のツリーから[Django]を選択し、[Location]にプロジェクトの保存先を指定します。
    末尾が~\untitledになっているので、作成するプロジェクトの名前に変更します。
    ※例ではskyline f:id:daisuke-jp:20170921104133p:plain

  3. [interpreter]の右の歯車をクリックし[Create conda env]を選択します。
    ここから新規でAnacondaの仮想環境の作成が行えます。

  4. [Name]に仮想環境名を入力します。ここではnissan
    そうすると、[Location]にはAnacondaの仮想環境保存先が指定され、末尾が[Name]で指定したディレクトリになるハズです。
    最後に使用するPythonのバージョンを指定します。 f:id:daisuke-jp:20170921104746p:plain

  5. OKを押すとAnacondaの仮想環境の作成が始まるので、しばらく待ちます。
    終わったらロケーションに設定したディレクトリにnissanフォルダが作成されています。

  6. New Project画面に戻るので、[More Settings]をクリックし、設定画面を表示します。

  7. [Template language]にDjango
    [Application name]にgtr
    を設定し、[Enable Django admin]はお好みでチェックを入れます。
    f:id:daisuke-jp:20170921105313p:plain ここで注意点ですが、プロジェクト名とアプリケーション名は同一の物は設定できません。
    これらの名称の関係性としては、作成後のフォルダ構成を見れば分かりますが、
    以下の様な形で作成されます。

skyline/
  ├ gtr/
  │  ├ migrations/
  │  ├ _init_.py 
  │  ├ admin.py
  │  ├ apps.py
  │  ├ models.py
  │  ├ tests.py
  │  ├ views.py
  ├ skyline/
  │  ├ _init_.py 
  │  ├ settings.py
  │  ├ urls.py
  │  ├ wsgi.py
  ├ templates/
  └ manage.py

プロジェクト名配下にプロジェクト名のディレクトリと、アプリケーション名のディレクトリが作成されます。
例えばこのプロジェクトで外部にAPIを公開する様になれば、 gtrと同じ構成で、apiというディレクトリがskylineディレクトリ内に追加される感じです。

以上で完了となります。

非常に簡単に環境を整える事ができました。
AnacondaとPyCharmさえインストールしておけば、GUIだけでここまでできてしまいます。 Anacondaのコマンドも難しくないので手動でもできますが、準備は簡単に超した事はないので有り難い機能かなと思います。

www.techbox.jp

PyCharmでAnaconda(Python)とDjangoの開発環境を構築する  その1

今回はPyCharmでPythonとDJangoの開発環境を作っていきたいと思います。
Pycharmはデフォルト設定とプロジェクト設定、2パターンの設定方法があります。
今回は、

既に作成した仮想環境を、Pycharmデフォルトの設定にする

方法を行っていきます。
プロジェクト単位での設定と、完全にGUIで構築する手順はその2で記載します。

  1. Anaconda、Djangoインストールと仮想環境構築
    以下のリンクに沿って実行して下さい。 www.techbox.jp

  2. Pycharmを起動し、スタート画面で右下の
    [configure]>[settings]
    をクリック f:id:daisuke-jp:20170920175049p:plain

  3. 左のツリーから[Project Interpreter]を選択し、
    右側上部のコンボボックスに、手順1で作成した仮想環境のpython.exeがリストアップされる事を確認し、選択します。 f:id:daisuke-jp:20170920175112p:plain

  4. 選択すると仮想環境にインストールされているパッケージの一覧が表示されます。
    ここでDjangoがインストールされている事がわかります。 f:id:daisuke-jp:20170920175127p:plain

  5. [Apply]を押し、設定を保存します。

以上でデフォルトの設定が完了しました。
後はCreate new projectやGitからリポジトリを取ってきて、
今回の設定をベースに立ち上げる事が可能です。

今回はAnacondaの仮想環境を手動で作成し、Pycharmのデフォルト設定のみを設定する方法でした。

その2では、仮想環境の構築、Djangoのインストール、新しいプロジェクトの立ち上げまでをPycharmのGUIのみで行う手順を書こうと思います。 実際の所、次の手順で立ち上げる事の方が多いような気がします。

AnacondaとPythonのインストール(python2とpython3の共存)とDjango

個人的にdjangoとnumpyなどPythonを使う機会があり、
折角なのでローカル開発環境としてのAnacondaのインストール方法をまとめました。
僕の環境がGCPのSDKが入っている関係で、Python2とPython3の共存が必要ので、その辺りもあります。

f:id:daisuke-jp:20160927101427p:plain

前提

  • Windows(Macと手順のベースは変わらないですが、コマンドに若干再有り)
  • pythonコマンドだとPython2が動作し、python3だとPython3が動作します

手順

  1. Anacondaのインストーラーをダウンロードしインストール
    ※ Python2と3を共存させる場合、インストーラーでPathは通さない。

  2. Pathを通す
    インストールディレクトリ\Anaconda3
    インストールディレクトリ\Anaconda3\Scripts
    インストールディレクトリ\Anaconda3\Library\bin

  3. Anaconda3内のシンボリックリンクを作成する
    それぞれAnaconda3内にあるexeです。
    元のexeがある場所にそれぞれに3を付けたシンボリックリンクを作成します。
    ショートカットだと上手く動作しなかったので、シンボリックリンクとしました。

python.exe -> python3.exe  
anaconda.exe -> anaconda3.exe  
anaconda-script.py -> anaconda3-script.py  
conda.exe -> conda3.exe  
conda-script.py -> conda3-script.py  
easy_install.exe -> easy_install3.exe  
easy_install-script.py -> easy_install3-script.py  
pip.exe -> pip3.exe  
pip-script.py ->pip3-script.py  
spyder.exe -> spyder3.exe  
spyder-script.py -> spyder3-script.py  
  1. 動作確認
    コマンドプロンプトでpythonとpython3でそれぞれのバージョンのPythonが起動する事を確認します。

  2. 仮想環境作成
    実際に開発する際に使用する仮想環境を作成します。
    これを作る事で、djangoなどのパッケージをインストールしても、
    プロジェクト毎に開発環境を分けられるというメリットがあります。
    conda create -n py36 python=3.6

  3. 仮想環境確認
    今ある仮想環境の確認ができます。
    念のため、先の手順で作成した仮想環境があるか確認を行います。
    conda env list

  4. 仮想環境有効化
    実際に使用する仮想環境を選択します。
    activateした環境で動作する事になります。 activate py36

  5. 仮想環境無効化
    やらなくても良い手順です。 仮想環境をオフにする場合に行って下さい。
    deactivate

  6. ザックリ環境説明
    仮想環境などを作成すると、最初はどうゆう構成になっているのか掴めなくなる事もあるので、
    超簡単にですが、こんな感じです。

windows - python2(Myの環境場合)
        - anaconda3(python3.6) - py36(ここを開発環境とする)
                               - pytest(仮想環境を作成するとこんな感じで追加されます)
  1. condaコマンド
    インストールから仮想環境の構築までは完了しました。
    今後は仮想環境にパッケージをインストールしたりして、開発をしていきます。
    その際に使用するのがcondaコマンドです。
    よく使いそうなコマンドが以下かなと思います。
conda list [ インストール済みのパッケージ一覧 ]
conda search django [ パッケージ検索 ]
conda install django [ パッケージインストール ]
conda update django [ パッケージアップグレード ]
conda remove django [ パッケージアンインストール ]

以上で取り敢えずAnacondaの環境は整いました。 今後はpycharmを使用したdjango開発環境を作っていきたいと思います。

【2017/9/20 追記】
仮想環境へのDjangoのインストールを追記します。
仮想環境を
activate <仮想環境名>
で有効化し、
conda install django
でインストールします。
これだけです。

仮想環境の意味が把握できていない場合、この手順の後にdeactivateし、
conda list
を実行してみて下さい。djangoが入っていないと思います。
これは、仮想環境でconda installでDjangoをインストールしたので、
rootにはインストールされていないという事です。
この様に、仮想環境事にパッケージのバージョンなども変更できるので、
一つAnacondaを入れておけば、複数のPython環境を切り替えて使えるようになるというのがメリットです。

www.techbox.jp

Google Cloud PlatformでMySQLを動作させる

Google Cloud Platformで、MySQLを使用していきます。
最終的には、GAEにRuby on Railsをデプロイしてプロダクション環境で動作させますが、
その前段階として、まずはDBの構築から行います。

f:id:daisuke-jp:20170509091937p:plain

MySQLの立ち上げ自体はかなり簡単な作業なのですが、
抜けがないように、丁寧に手順を記載していきたいと思います。

  • Google Cloud Platformについて
  • GCPのデータベースについて
  • Cloud SQLの有効化
  • ローカルからMySQLの接続をする

Google Cloud Platformについて

f:id:daisuke-jp:20170509092217p:plain
これは相当数の説明がありますので、わざわざ書くまでもないですね。
公式ページを見るのが早いと思います。
AWSやAzure、さくらのクラウド辺りと競合してくるサービスです。

Google Cloud Platformのイニシャルで、GCPと呼ばれるのが一般的かと思います。

GCPのデータベースについて

GCPには2017年5月現在で、3つのデータベースが存在します。
ざっくりまとめると、以下の感じです。

  • Cloud Datastore
    f:id:daisuke-jp:20170509092309p:plain:w100
    KVS型DB。プログラムから使用する場合、Google提供のライブラリーを導入し、
    GCPのドキュメント見ながら、DB操作のコーディングが必要。
    Railsの場合(多言語でも聞いた事はないが)、当然ORMは存在しない。

  • Cloud SQL
    f:id:daisuke-jp:20170509092336p:plain:w100
    RDB。一般的に使用されているRDBのホスティングサービスで、
    MySQLとPostgreSQLに対応している。
    MySQL用のORMで使えるし、ローカルから各種ツールを使ってデータ操作も可能。
    今回はこれを使用します。

  • Cloud Spanner
    f:id:daisuke-jp:20170509092348p:plain:w100
    KVSのスケーラビリティと、RDBの整合性をトレードオフする事なく実現させた、
    夢のようなDB。今現在はGo、Java、Node.js、Python用のクライアントライブラリーがある。
    その他の言語にも順次対応予定との事。

MySQLの構築なので、今回はCloud SQLを実行します。

Cloud SQLの有効化

まずはプロジェクトを作成し、選択した状態にして下さい。

続きを読む