■importとfrom
Pythonのモジュールとimportとfrom入門 - Qiita
Pythonのモジュールとimportとfrom入門 - Qiita
Python, importの使い方(from, as, PEP8の推奨スタイル, 注意点など) | note.nkmk.me
Pythonインポート周り徹底理解への道 - Qiita
Pythonの相対インポートで上位ディレクトリ・サブディレクトリを指定 | note.nkmk.me
標準ライブラリならimport文を本体に書いていれば良い
標準ライブラリ以外はPyPI(Python Package Index)と呼ばれる3rdパーティライブラリから
pip(The Python Package Installer)インスコ
import文を使って下記の3つなどをインポートし使う
標準ライブラリ
pipでインスコしたパッケージ
自作のパッケージ
自作は大体わかるがそれ以外はどこにあるのか?
Pythonインポート周り徹底理解への道 - Qiita
Pythonの相対インポートで上位ディレクトリ・サブディレクトリを指定 | note.nkmk.me
標準ライブラリならimport文を本体に書いていれば良い
標準ライブラリ以外はPyPI(Python Package Index)と呼ばれる3rdパーティライブラリから
pip(The Python Package Installer)インスコ
import文を使って下記の3つなどをインポートし使う
標準ライブラリ
pipでインスコしたパッケージ
自作のパッケージ
自作は大体わかるがそれ以外はどこにあるのか?
$ python
>>> import sys
>>> sys.path
でパス一覧が出るので探すと分かる >>> exit()でpythonコマンド終了
例えば Cloud functionsなら requrements.txtに google-api-python-client==3.3.2と記載し
PyPI · The Python Package Index でバージョンを探す
コードに from google.cloud import bigqueryと宣言する
requirementがpipインスコ
>>> sys.path
でパス一覧が出るので探すと分かる >>> exit()でpythonコマンド終了
例えば Cloud functionsなら requrements.txtに google-api-python-client==3.3.2と記載し
PyPI · The Python Package Index でバージョンを探す
コードに from google.cloud import bigqueryと宣言する
requirementがpipインスコ
import フォルダ.ファイル名
from フォルダ.ファイル名 import *
上下同じだが、fromは一部を指定し直接使うという意、*は非推奨
つまり
import hello なら下記とする必要があるが
print(hello.hello)
from hello import hello なら省略ができ下記で良い
print(hello)
from フォルダ名 の場合
そのフォルダ名の中に __init__.pyがあれば其れ
from .xxx import aaa の.の意味は?
mainに対するモジュールから見て相対で隣
mainに対するモジュールから見て相対で隣
モジュール検索パスを出す
from pprint import pprint
import sys
pprint(sys.path)
■pipインスコ
PyPIでサードパーティライブラリを管理していてインスコ可
setup.pyが含まれたローカルディレクトリも指定しインスコ可
eオプションで編集可能な状態でインスコ
--userで~/.local下の管理権限不要なユーザディレクトリ以下でシステムが汚れない
--userなしで/usr下にインスコ
pip install --user -e unko
pip3 install pipenv
pip list インスコ済みのものを確認
pip install -r requirements.txt reqirements.txtで一括インスコ
pip freeze > r.txt pip listをファイルに書き出す
pip uninstall -y -r r.txt -yで確認なしで一括アンインストール
Python, pipでrequirements.txtを使ってパッケージ一括インストール | note.nkmk.me
■envツール
pip install -r requirements.txt reqirements.txtで一括インスコ
pip freeze > r.txt pip listをファイルに書き出す
pip uninstall -y -r r.txt -yで確認なしで一括アンインストール
Python, pipでrequirements.txtを使ってパッケージ一括インストール | note.nkmk.me
パッケージとバージョンを指定してアップデート
■envツール
pyenv パイソンバージョン管理としてインスコ
ubuntu 20.04 / 18.04 に pyenv をインストールする話 #Python - Qiita
pyenvのインストール、使い方、pythonのバージョン切り替えできない時の対処法 #Python - Qiita
ubuntu 20.04 / 18.04 に pyenv をインストールする話 #Python - Qiita
pyenvのインストール、使い方、pythonのバージョン切り替えできない時の対処法 #Python - Qiita
pyenv install --list インストールできるもの
pyenv install 3.8.8 指定verをインスコ
pyenv global 3.8.8 デフォルトに指定
.python-versionファイルをGITに載せ管理したい?
pipenv PIP管理としてインスコ
Pipenvでの基本的な環境構築 - Pirika Developers Blog
Pipenvでの基本的な環境構築 - Pirika Developers Blog
pipenvはPipfileとPipfile.lockを利用しpipでrequrements.txtを用いるよりも強力
PipfileとPipfile.lockとrequirementsをGITに載せ管理したい?
pipenv --python 3.8.8 など最初にpyバージョンをpipfileに記載
pipenv install "google-cloud-tasks==1.5.0" バージョン無しでも有りでも入れられる
Pipfileを書き換える方法
Pipfileを書き換える方法
[packages]
google-cloud-tasks = "==1.5.0"
protobuf = "*"
そして下記cmdでインスコ
pipenv install PipefileからインストールしPipefile.lockを更新
pipenv sync Pipfile.lockの最新を取得し環境更新(Pipefileは使わない)
pipenv shell 仮想環境を起動
pipenv run python main.py
pipenv run python main.py
他に
pipenv uninstall google-cloud-tasks アンインスコ
pipenv uninstall google-cloud-tasks アンインスコ
Pipfile, Pipfile.lockがあれば pip syncでOKだがrequirements.txtも使える
pipenv lock -r > requirements.txt 生成
pipenv install -r requirements.txt
pipenvのバージョンが古いと依存関係、Ver整合性で問題が起きやすい
pipenv --version
pip install pipenv
pipenv update
pipenv upgrade <パケ>でやり直す
■assertでテスト
assert文は組み込み定数__debug__がTrueの時のみ実行されます
実行コマンドにオプションに-Oをつけると__debug__がFalseになりassert文が無効に
def func_so(a, b):
c = a * b
return
def test():
assert(func_so(1,2) == 2)
if __name__ == "__main__":
test()
main()
■個別
import dataclasses
[詳解] Pythonのdataclasses (zenn.dev)
データ格納するオブジェクトを作れば使い回しが楽
データ格納するオブジェクトを作れば使い回しが楽
import datetime
pip install pyyaml > import yaml
pip install requests > import requests
SlackのwebhookにPostするとか
tenacityでリトライ処理
[Python] tenacity ライブラリを利用してリトライ処理を簡単に実装する (zenn.dev)
[Python] tenacity ライブラリを利用してリトライ処理を簡単に実装する (zenn.dev)
boto3で並列処理
Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる #Python - QiitaPython + VSCode の環境構築 20240604 (zenn.dev)
↓本家
/// BANGBOO BLOG /// - Python