Python3 仮想環境
$ sudo apt update && sudo apt upgrade$ sudo apt install python3-venv python3-pip
$ cd my-app
$ python3 -m venv env
$ source env/bin/activate
V cd my-project
V pip3 install -r requirements.txt
Googleさえあれば、生きていける。多分...。
早速、リファクタリング、やってみました。
とにかく、すげぇ〜。
これまで、(独学と言えば聞こえは良いが・・・要は適当に、) 見様見真似でコード書いてたのが、先人の知見をお借りして、どんどんと良いコードになっていく感じ。最高です。
リスト内包表記を(勝手に)提案してくれるし、変数名を(勝手に)変更してくれるし。
PEPなんちゃらと(言い訳しながら)、とにかく、的確なご指摘ありがとうごさいます。
とりあえず、こんな感じでプロンプトしてます。
「次のコードを視認性良く、リファクタリングして。〜自分のコード〜」
いや〜、良い時代です。
格安VPSのWebARENAは、いつもインスタンスの在庫不足で、申込みが出来ませんでした。
https://arena.secure.customer.ne.jp/signup/vpsc/zone
たまたま、申込みが出来たので、Webサーバ構築の手順をメモしておきます。
申し込みページ
https://arena.secure.customer.ne.jp/signup/vpsc/zone
お客様番号とか、契約者IDとか、サービスIDとか、とても分かり辛いですが、適当に入力して申込み完了。手順は全然思い出せませんが..
インスタンスタイプ
・メモリ 1GB
・CPU 仮想1コア
・ディスク SSD 20GB
躓きどころ
・ログイン
Ubuntuを選択した場合、初期ユーザ名は「ubuntu」です。
「root」ではログインできません。
・セキュリティグループ
要は、ファイヤーウォールです。
デフォルトでは、全てのポートを閉じているので、設定必須です。
SSHで接続できれば、後は、いつものUbuntuです。
参考
http://yamayoshi.blogspot.com/2020/04/gcenginx-unitweb.html
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install python3-venv python-pip
仮想環境 & Flaskインストール
$ cd
$ mkdir project1 && cd project1
$ python3 -m venv venv
$ source ./venv/bin/activate
V pip install Flask
アプリケーション
V nano main.py
--
from flask import Flask
application = Flask(__name__)
@application.route("/")
def index():
return "Hello Project1!"
if __name__ == "__main__":
application.run()
--
動作確認
V python3 main.py
→コンソールをもう1つ開いて動作確認
$ curl http://127.0.0.1:5000/
V deactivate
Nginx (Webサーバ)
http://unit.nginx.org/installation/#ubuntu-1804
(インストール準備)
キー取得
$ sudo -i *rootで作業
# curl -sL https://nginx.org/keys/nginx_signing.key | apt-key add -
リポジトリ追加 *Ubuntu18.04 = bionic
# nano /etc/apt/sources.list.d/unit.list
--
deb https://packages.nginx.org/unit/ubuntu/ bionic unit
deb-src https://packages.nginx.org/unit/ubuntu/ bionic unit
--
インストール
# apt update
# apt install unit unit-dev unit-python3.6
コンフィグ
https://unit.nginx.org/howto/flask/
ソケットの場所を調べる
# unitd --help
--control ADDRESS
set address of control API socket
default: "unix:/var/run/control.unit.sock"
現在の設定をファイルに出力
# curl --unix-socket /var/run/control.unit.sock http://localhost/config/ > config.json
Flask用の設定
# nano config.json
--
{
"listeners": {
"*:80": {
"pass": "applications/flask_app"
}
},
"applications": {
"flask_app": {
"type": "python",
"path": "/home/ubuntu/project1/",
"home": "/home/ubuntu/project1/venv/",
"module": "main"
}
}
}
--
*説明
listeners: ポート *80(HTTP)
type: 言語
path: プログラムの場所
home: 仮想環境の場所
module: プログラム本体(ファイル拡張子を除く)
設定を上書き
# curl -X PUT --data-binary @config.json --unix-socket /var/run/control.unit.sock http://localhost/config
再起動
# service unit restart
ブラウザから動作確認。
おつかれさまでした。
久々に Chromebook の Linux を入れ直してみた。
OS が Debian10(buster) になり、Python2 が外された。
いよいよ本格的に Python3 の時代です。
で、仮想環境の構築から、Cloud-SDKのインストールまでやってみました。
手順は以下の通り。
--
google-cloud-datastore のインストールで躓き。ちょっと修正。
pip と setuptools を更新(-U)して、grpcio をインストールするのがポイント。
※ pip3 install grpcio ...とても時間掛かります... のんびり待ちましょ。
[仮想環境]
$ sudo apt update && sudo apt upgrade
$ sudo apt install python3-dev python3-venv build-essential
$ mkdir test && cd test
$ python3 -m venv env
$ source env/bin/activate
V pip3 install -U pip setuptools
V pip3 install grpcio
V pip3 install google-cloud-datastore
V deactivate
$
--
[仮想環境]
$ sudo apt update && sudo apt upgrade
$ sudo apt install python3-venv
$ mkdir test
$ cd test
$ python3 -m venv env
$ source env/bin/activate
V deactivate
$
[Cloud SDK]
$ echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
$ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
$ sudo apt update && sudo apt install google-cloud-sdk
$ gcloud init
$ sudo apt install google-cloud-sdk-app-engine-python
$ sudo apt install google-cloud-sdk-datastore-emulator
補足です。
・仮想環境内のPATHを確認
V which python3
-> /home/xxxxxx/test/env/bin/python3
V pip -V
-> pip 18.1 from /home/xxxxxx/test/env/lib/python3.7/site-packages/pip (python 3.7)
・Cloud SDK は、Debian/Ubuntu の手順で
https://cloud.google.com/sdk/docs/quickstart-debian-ubuntu?hl=ja
こんなに簡単に開発環境が手に入るなんて!! とても素敵です。