フリーランスのりゆう。

Android(Java, Kotlin), Ruby on Rails, Angular, Vue.js など、開発日記を主に綴っていく予定です。自分のWebサービスを持つことが現在の目標です。

Python を CGI プログラム で実行してみる。

 

前回の続きから。

liyuu8dev.hatenablog.com

 

 

Python 標準モジュールの http.server という CGI プログラミングを、Web サーバーとして使用します。

実行するプログラムは以下のコードです。

gist6732babf8fc917dfc19e05a1f5950c89

 

対象のプログラムに実行権限を付与し、 http.server を実行。

このとき、いくつかエラーが出たのでメモ。

 

一つ目は、最初の一文を入れてなかったことによるもの。

これ最初コメントだと思って、スルーしてました。 shebang というものらしい。

 

もう一つは、結構難儀しました。windows 環境下でコードを書いたことが原因でした。

下のサイトのおかげで助かりました。
utisam.hateblo.jp

gista55da2ba5f9ae977bbdf8f7f3bd0de76

 

python3.7 のあとの "\r" がCRLF の改行コードの一部みたいです。

最終的に Atom のエディタで改行コードを、 CRLF から LF に変更したことであっけなく解決。ホストOS のブラウザで実行を確認できました。

f:id:liyuu:20181017232429j:plain

 

エラーの解決に時間がかかりすぎたため、今回はここまで。

仮想マシン上の Python をセットアップ。

 

前回の続きです。

liyuu8dev.hatenablog.com

 

 

仮想マシン上の Python のアップデート

仮想マシン上の Ubuntu 16.04LTS にインストールされている Python 3.5.2 をアップデート。

必要な deb パッケージと、最新版 (2018年10月時点) である Python 3.7.0 のソースをダウンロードしてインストールします。

gistdfaca4f06d812f0b756d622190fa7f8c

 

インストール時にエラーが発生。

調べると3.7系で発生するエラーらしく、以下サイトを参考にして解消出来ました。

qiita.com

 

インストール完了。

続けて、シンボリックリンクなるものを追加。ショートカット的なもの?

gist1daf75386c9c125db7eb0f79f400d7f8

 

パッケージ管理ツール pip の設定

こちらもシンボリックリンクを作成。

いくつかパッケージをインストールして、動作確認してみる。

gist0e25a50d20691c83c25e66d7d5446e1d

 

Python 仮想環境 venv の作成

プロジェクトごとにインストールする、パッケージの切替が可能な仮想環境を作成してみる。

gistfd4df05dfd84a17177ddca23f75cdde9

 

Flake8 のインストール

コーディングスタイルやシンタックスのチェックに使用される、Flake8 なるものもインストール。

しかし実行後、なぜかインストールされていない扱いにされ実行できず。。。

また次回以降挑戦してみます。

 

 

今回がここまで。

VirtualBox + Vagrant で仮想マシンの開発環境をセットアップ。

 

PythonでWebアプリケーションの作成をするため、仮想マシンの導入をすることに。

 

Pythonプロフェッショナルプログラミング 第3版

Pythonプロフェッショナルプログラミング 第3版

 

 

環境

Win7 64bit

 

VirtualBox のインストール

virtualbox 5.2.18、 Windows hosts のパッケージをダウンロード。

インストーラーの手順に従ってインストールする。

Downloads – Oracle VM VirtualBox

 

Vagrant のインストール

Windows 64-bit 版をダウンロード、インストール。

www.vagrantup.com

 

再起動後、インストールの確認。

gistbd0787cad958597bf54fea3f334bd222

 

ゲストOS のセットアップ

Vagrant でベースとなるOS (Box) をセットアップ。参考書と同じBoxである、"ubuntu/xenial64" を作業用ディレクトリ下に追加します。

gistaff85b95b45b4e6a12d22b373ea386ee

 

Boxが追加できたので、設定ファイルを作成し、ゲストOSを起動する。

gist1019ebb8fdce72038acddcf8a7827ecb

 

ここで、エラーが発生。原因は以下2か所。

 

zakiyamatakashi.hatenablog.com

 

blog.framinal.life

 

 ”MacType 用户向导” で VirtualBox 関連の2つを選択し、「このプロセスを除外」を選択。

f:id:liyuu:20181016195304j:plain

 

ググって割と簡単に解決しました。先人たちに感謝です。

 

ゲストOS の起動・その他操作

gist5ef54476b4e0e4c91e1a28f7879b0972

 

無事、起動できました。

 

プライベートネットワーク設定・ホストOSとの同期など、confing の設定も一通り完了。

gistd09e11922684e2e1a16e1b8a42b84ae1

Vue.js + Firebase でミニWebサービスを作る(1)

開発記録の第1回として、Vue.js + Firebase でシングルアプリケーション(SPA)を作りたいと思います。下の本を参考にさせていただきます。

 

 

Vue.js は今回が初体験です。Angular で流れは多少理解しているつもりなのですが、SPA開発の引き出しをどんどん増やしていきたいと考えて、Vue.js に興味を持ちました。

たまたま Amazon で見つけたこの参考書は、ミニサイズとはいえWebサービスを開発できるみたいです。最終的に Markdown のエディターを提供するWebサービスが公開できます。

 

Firebase の使用経験は、一度だけですが Angular + Firebase で Udemy の講座を参考に作ったことがあります。サーバーの知識が皆無なのでこういったサービスはありがたいですね。

 

 

今回は第3章まで進めました。

とはいっても作業自体は開発環境のセットアップ、Githubに連携、デプロイという感じで内容としては軽めでした。

 

Vue.js のテンプレートを利用するため、ツールのインストール。

 

テンプレートのダウンロード。

 

mymarkdown に移動して、インストール&実行。

 

f:id:liyuu:20180907013158j:plain

 

無事に表示できました。

 

ここで Github の連携を行ったのですが、地味に手間取りました。

 

Git の初期設定。

 

push するところでパスワードの入力を求められたものの、設定した覚えがなく、いろいろ試して結局 ssh公開鍵を再設定することに。

 

再設定後、もう一度 push すると今度は以下のエラーにより、Github にpush できない。。。

push declined due to email privacy restrictions

 

Gitの設定を Primary email address に変更することで解決。以下のサイトを参考にしました。

takafumi-kimura.hatenablog.com

 

 

再度、push するとようやく成功。あとは Firebase にプロジェクトを新規作成して、作成ほやほやのプログラムをデプロイします。

 

f:id:liyuu:20180907013201j:plain

f:id:liyuu:20180907013154j:plain

f:id:liyuu:20180907013157j:plain

Firebase の初期設定

 

Firebase の初期設定は問題なく進み、デプロイ完了。

 

https://mymarkdown-liyuu.firebaseapp.com/

 

 

今回はここまで。こんな感じで備忘録的に、のんびり続けたいと思います。

自己紹介です

はじめまして、りゆうといいます。

 

フリーランスエンジニアを目指して、Java, Kotlin, Ruby on Rails, Angular等、Web・IT関連のスキルを独学で勉強しています。

 

プログラミングを初めて触れたのは大学の授業でした。

C言語の ”Hello world” を画面上に出力するのが、最初に授業だったと思いますが、あまり感動を覚えませんでした。

その後も、プログラミング言語の動作の仕組みや、アルゴリズムなどの内容にあまり興味が持てず、結局勉強を断念してしまいました。

ポインタとか地獄でした。。。(あまり記憶にない)

 

その後、だらだら過ごしていた大学を中退し、しばらくのフリーター生活でモバイルアプリ開発に興味を持ちました。

Androidアプリの開発のため、Java、Kotlinを書籍や、動画講座(Udemy)でサンプルアプリを見様見真似で作成していました。

最初のころは、プログラミングを手打ちするのがめんどくさくて、コピペを乱用していた記憶があります(笑)そのせいでタイピング速度が遅く、内容もあまり定着しませんでした。

作っているうちにオリジナルのアプリを作りたくなったのですが、これといった作成案が思いつかない。

構想を描いてもそれをどのように実装するのか?という、知識がまったく不足していました。これは現在進行形ですが。。。

その頃、影響を受けていた「ザ・コーチ」という目標の立て方について書かれた本を参考に、Todoサンプルアプリを改変したりしてました。

 

現在はモバイルアプリの開発を一旦脇に置いて、Webアプリ開発を目的に Rails、Angular、Vue.js を勉強中。

モバイルアプリとの連携のため、Fultterにも興味があります。

 

ゆくゆくは会社に依存しない生き方をしたい。

 

自分のWebサービスを作るのが現在の目標です。

 

そんなよわよわプログラマの自分ですが、開発記録・アウトプットの場として、ブログを始めたいと思います。