0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自分用Pythonプロジェクト開発関連コマンドチートシート

Last updated at Posted at 2024-07-01

Pythonプロジェクト開発にあたりプロジェクトよく使いそうなコマンドやスクリプトに関する覚え書き

(なお、筆者は学習PCはWindows、エディターはVScodeを主に使用のためMacは調べ切れていませんm(_ _)m)

~開発環境構築(venvの場合)

 venvフォルダの作成

次のいずれかをディレクトリ直下で実行

〇 cmd(コマンドプロンプト)の場合

wsl
python3 -m venv venv

〇 powershell の場合

#実行ポリシーを変更
PowerShell Set-ExecutionPolicy RemoteSigned CurrentUser
py -m venv venv

 venv の有効化(activate)

次のいずれかをディレクトリ直下で実行

〇 cmd(コマンドプロンプト)の場合

.\venv\Scripts\activate

〇 powershellの場合

venv\Scripts\Activate.ps1
#最後はps「イチ」

 ※本Qiita筆者は基本的にエディターは VScodeを使っていますが、(2024.7.11現在)特段何かvenvに関わる設定しておらず、PCシャットダウン時(または VScodeを閉じた時点??)には有効化が切れるようです。(※有効化時には、powershellの場合、以下の画像のように(venv)という表示が出ます)

venv.png

 開発環境をvenvで進めてGithubでコードを管理する場合の注意

 venvフォルダ内には以下のようなファイル(ほとんどが各venvにインストールしたライブラリーに関する情報)が入っていますが、2枚目の画像にあるように venvそのものPC内でのパス?の情報を以下の pyvenv.cfg は含んでいるため少なくともこのファイルは.gitignoreに記述すべきではないかと感じました。
 ※パスの中に個人のユーザー名が入っている可能性がある。requirements.txtがあれば必要なライブラリーはすぐに復元可能なため、venvフォルダごと.gitignoreに書いておいてもよい??

environment1.png

environment2.png

 ライブラリー(またはパッケージの)インストール関係

〇 pip 自体のアップグレード

python -m pip install --upgrade pip

〇 pip で各開発環境にインストールしたライブラリーなどの現在のバージョン及び更新することで得られる最新バージョンの確認

py -m pip list --outdated

〇 上のコマンドで表示されたインストールされているライブラリー(・パッケージ)のうち、指定したものを最新のバージョンに更新する

py -m pip install --upgrade 更新したいライブラリー(・パッケージ)名

〇 ライブラリーのアンインストール

pip uninstall アンインストールしたいライブラリー(・パッケージ)名

 requirements.txt(ライブラリ名とバージョン番号を指定してインストールするためのテキストファイル)関係

〇requirements.txtの作成&更新(普通にメモ帳などでも作成可能)

※テキストファイルの名前は慣例として、requirements.txt とするので、違うファイル名で作成する場合、下記の「requirements」を適宜変える。

pip freeze > requirements.txt

※pipですでにインストールされているものについては、作成・更新時に自動的に記述される。
※venvを一旦削除した状態で新たにvenvを作り直し、pip installをしないまま、このコマンドを打つと、requirements.txtが真っ白にリセットされるので注意
==>さすがにPoetryの学習始めました

〇作成した requirements.txt のファイルの名前を表示

cat requirements.txt

〇 requirements.txt を参照して(書かれた)ライブラリー(・パッケージ)を一括インストール

pip install -r requirements.txt

開発~

環境変数関係

〇(pip等でライブラリーなど設定した状態での使える)環境変数一覧出力

import os
 
if __name__ == '__main__':
 
    for x in os.environ:
        print((x, os.getenv(x)))

※なお、デフォルトで使えるものもいくつかあるように思える

①「TESTING」:特定のテストモードを有効にするために使用されるカスタムの環境変数(Trueのとき、アプリケーションがテストモードで動作するようにする。このテストモードでは、実際のデータベースではなくテスト用のデータベースを使用したり、メール送信などの特定の機能を無効にしたりすることが一般的

※実際に TESTING = False になっていると、例えば flask-mailを使用してフォームでポスト送信した内容がメール送信するようにしてある場合、「ポスト送信自体にエラーは起こっておらずスクリプトも走っているはずなのに、メールが来ない」という状態が発生しました。

参考記事

https://stackoverflow.com/questions/17980351/flask-mail-not-sending-emails-no-error-is-being-reported

.env_or_config.py
TESTING = True (or False)

Poetry関係

たぶん一番使うのは、既存のプロジェクトにPoetryを導入

wsl
$ poetry init

Flaskを始めてみる場合

create_app()や.envを定義せずにとりあえず始めてみる場合

(1)最低限のフォルダ等の構成

最低限以下のようにフォルダやapp.pyを作成(拡張子が.pyであれば、名前はapp.pyでなくともよい。まだ、この段階ではapp.pyの中身は空でよい)
 appsフォルダ
  |--app.py
 venv

(2)flask をインストール

pipなら以下のコマンドでインストール
pip install flask

※注:Python外部ライブラリーあるあるだと思うのですが、flaskとFlaskは別物で Flask $\subset$ flask で、flask内に他にも必要不可欠なライブラリーが以下のように入っているため、「flask」で一気にインストールする方が楽

インストール後、実際こんな感じでimport

import (2).png

import (3).png

Django関連

①プロジェクトの作成

django-admin startproject プロジェクト名

②開発用サーバーの起動

python manage.py runserver
#もしくは
py manage.py runserver
#もしくは
python3 manage.py runserver

※プロジェクト作成したときにデフォルトで作成されるmanage.pyの名前をいじっていない場合

③Djangoの各プロジェクト内にアプリケーション(各機能、flaskでいうBlueprintに近い)のデフォルトを作成

python manage.py startapp 各アプリ(=機能)名
#もしくは
py manage.py startapp 各アプリ(=機能)名
#もしくは
python3 manage.py startapp 各アプリ(=機能)名

Github関連

主な参考資料

① Pythonエンジニア育成推進協会 Python実践レシピ 【技術評論社】 
鈴木たかのり、筒井隆次、寺田 学、杉田雅子、門脇 諭 、福田 隼也(共著)

Amazonリンク

https://www.amazon.co.jp/Python%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E8%82%B2%E6%88%90%E6%8E%A8%E9%80%B2%E5%8D%94%E4%BC%9A%E7%9B%A3%E4%BF%AE-Python%E5%AE%9F%E8%B7%B5%E3%83%AC%E3%82%B7%E3%83%94-%E9%88%B4%E6%9C%A8-%E3%81%9F%E3%81%8B%E3%81%AE%E3%82%8A/dp/4297125765

② Python Flask によるwebアプリ開発入門 物体検知アプリ&機械学習APIの作り方【翔泳社】 
佐藤晶基、平田哲也(共著) 寺田 学(監修)

Amazonリンク

https://www.amazon.co.jp/Python-Flask%E3%81%AB%E3%82%88%E3%82%8BWeb%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80-%E7%89%A9%E4%BD%93%E6%A4%9C%E7%9F%A5%E3%82%A2%E3%83%97%E3%83%AA-%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92API%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9-%E4%BD%90%E8%97%A4/dp/4798166464/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3J712XAZ7X50L&dib=eyJ2IjoiMSJ9.yH00bs1Pl6Rl85dmDtCAJkl_EJB7UAQfs43tQpO3NVLbc8y2QzE-fc8P1OPmpqT_k1t7DjCHL2HqXb4PPGC25KppqfNbCKQfxn9T1Jt2E6b7DIgQKVxq6GgYrTcDfqG-VMnJBeFf8y7VF7v7va7FYfTWibF8wf37vi4XShJZbNsYPtxY8g6Xj6NidkF0yonhIGOM2cwUr_s-u1QztH3FXT3PPsn3ncxmBqCZoKRa-6E.PTOg2T9-s0I5PY9KcGhdZn17orf4MLMeiBOtbukqKsI&dib_tag=se&keywords=Python+Flask+%E3%81%AB%E3%82%88%E3%82%8Bweb%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80+%E7%BF%94%E6%B3%B3%E7%A4%BE&qid=1720703899&s=books&sprefix=python+flask+%E3%81%AB%E3%82%88%E3%82%8Bweb%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80+%E7%BF%94%E6%B3%B3%E7%A4%BE%2Cstripbooks%2C564&sr=1-1

③ Flask公式ドキュメント:https://flask.palletsprojects.com/en/3.0.x/
 なお、「Flask公式ドキュメント」等と検索すると邦訳版が出てきますが、そちらはバージョンが古いようで、つよつよの方によるとこちらを参照すべきとのことです。

④ Flask + SQLAlchemyプロジェクトを始める手順 @shirakiya(Yoshihiko Shiraki)さんQiita 
https://qiita.com/shirakiya/items/0114d51e9c189658002e

⑤ Poetryをサクッと使い始めてみる @ksato9700 さんQiita
https://qiita.com/ksato9700/items/b893cf1db83605898d8a

⑥ [初心者向け] Poetry入門!インストール方法から使い方、コマンド、パッケージの管理方法まで徹底解説 @shun198 さんQiita
https://qiita.com/shun198/items/97483a227f288ad58112

⑦ 開発系エンジニアのためのDocker絵とき入門 【秀和システム】 鈴木 亮(著)

Amazonリンク

https://www.amazon.co.jp/%E9%96%8B%E7%99%BA%E7%B3%BB%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEDocker%E7%B5%B5%E3%81%A8%E3%81%8D%E5%85%A5%E9%96%80-%E9%88%B4%E6%9C%A8%E4%BA%AE/dp/4798071501/ref=sr_1_2_sspa?crid=332EB8M04UXE0&dib=eyJ2IjoiMSJ9.tYhpgAFyKlCQi2UXS0PciDZVwzPhkFt0Un4-hx4udn0tcCWfBDET2_DNtwa9s9H6BEcWGYo08D5KOLo5D6pM_9oMAXm-sfXPKxO2wnvvaLgTVjQ886BdpPCv7TqgKTeVy4hbGIxYn-zYHNDQeLQsCrIUEbTZYlh1cvPeeUBFhR5b47CsTcOxImzkB6sPBuzLx5Nfzr5yTf7Q0BOykAuch2dwwWccsXt2O6tgYrFUgfVM8g8zWt_ZiIzSjiMfIVsM_D3CBHhjRO6D-puIKrgZO_JrNuGflVj6a8XLmxETu7A.3OFce1Esh_Oa_-KwtyINfrnDb6EF7BIZmkvV0UkYBX0&dib_tag=se&keywords=%E9%96%8B%E7%99%BA%E7%B3%BB%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEdocker%E7%B5%B5%E3%81%A8%E3%81%8D%E5%85%A5%E9%96%80&qid=1724853635&sprefix=%E9%96%8B%E7%99%BA%E7%B3%BB%2Caps%2C214&sr=8-2-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1

※Linuxコマンドの学習の必要性を感じるキッカケとなった本。手を動かしてコンテナを作っては壊して学ぶ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?