Python¶
はじめに¶
本サイトにつきまして、【IT技術の知見】はじめに - 俺の技術ノート をご認識のほど宜しくお願いいたします。
01. Python とは¶
インタプリタ型の動的型付け言語であり、Web アプリケーション、データ分析、機械学習など幅広い用途で使用される。
02. セットアップ¶
インストール¶
▼ yum リポジトリから¶
$ yum install -y python3
Dockerfile¶
▼ Flask、uWSGI を使用する場合¶
#===================
# Global ARG
#===================
ARG PYTHON_VERSION=3.10
ARG LABEL="Hiroki <example@gmail.com>"
#===================
# Base Stage
#===================
FROM python:${PYTHON_VERSION}-slim as base
WORKDIR /var/www/foo
ENV TZ Asia/Tokyo
COPY ./requirements.txt /var/www/foo/requirements.txt
RUN apt-get update -y \
`# uwsgiの要件をインストール。` \
&& apt-get install -y \
gcc \
`# uESGIの起動時にFlaskが必要なため、パッケージを先にインストール。` \
&& pip install \
--upgrade pip \
-r requirements.txt
COPY ./docker/flask/uwsgi.ini /etc/wsgi/wsgi.ini
#===================
# development Stage
#===================
FROM base as development
LABEL mantainer=${LABEL}
CMD ["uwsgi", "--ini", "/etc/wsgi/wsgi.ini"]
#===================
# Production Stage
#===================
FROM base as production
LABEL mantainer=${LABEL}
COPY ../software /var/www/foo/
CMD ["uwsgi", "--ini", "/etc/wsgi/wsgi.ini"]
▼ FastAPI、uvicorn を使用する場合¶
#===================
# Global ARG
#===================
ARG PYTHON_VERSION=3.10
ARG LABEL="Hiroki <example@gmail.com>"
#===================
# Base Stage
#===================
FROM python:${PYTHON_VERSION}-slim as base
WORKDIR /var/www/customer
ENV TZ Asia/Tokyo
COPY ./requirements.txt /var/www/customer/requirements.txt
RUN pip install \
--upgrade pip \
-r requirements.txt
#===================
# development Stage
#===================
FROM base as development
LABEL mantainer=${LABEL}
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--reload"]
#===================
# Production Stage
#===================
FROM base as production
LABEL mantainer=${LABEL}
COPY ./ /var/www/customer/
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--reload"]
03. ディレクトリ構成規約¶
04. ファイル構成¶
命名規則¶
▼ PEP による規則¶
Python の命名規則は、PEP に記載されている。
▼ パッケージ¶
すべて小文字のスネークケースとする。
▼ モジュール¶
すべて小文字のスネークケースとする。
▼ クラス¶
アッパーキャメルケースとする。
▼ 例外¶
アッパーキャメルケースとする。
▼ 型変数¶
アッパーキャメルケースとする。
▼ 関数¶
すべて小文字のスネークケースとする。
▼ 関数¶
すべて小文字のスネークケースとする。
▼ 変数¶
すべて小文字のスネークケースとする。
▼ 定数¶
すべて大文字のスネークケースとする。