Skip to content

kuronokurujp/Stduy_language_Python

Repository files navigation

Stduy_language_Python

Sample Python List

説明

  • プログラミング言語 Python の学習用

免責事項

このソフトウェアの使用または使用不可によって、いかなる問題が生じた場合も、著作者はその責任を負いません。バージョンアップや不具合に対する対応の責任も負わないものとします。

開発環境構築

Pytnon のインストール

venv などの仮想環境を動かすための準備

  • win 版

    • 仮想環境を動かすため PowerShell の ps ファイルを実行するものがある

    • しかし PowerShell の環境によっては ps ファイルを実行不可能な設定なのもある

仮想環境作成

  • win 版

    • pyenv が入っている場合

      1. 利用する python をインストールする
        • pyenv install xxx
          • xxx にインストールしたい python のバージョンを指定
          • インストールできるバージョンのリストは以下のコマンドで出力できる
            • pyenv install --list
      2. プロジェクトディレクトリに移動
      3. プロジェクトで利用する python のバージョンを設定
        • pyenv local xxx
        • インストール済みバージョン一覧は以下のコマンドで出力できる
          • pyenv versions
      4. プロジェクトディレクトリに.python-version ファイルが作成しているかチェック
      5. .python-version ファイルは git にコミットしないように無視リストに追加
  • 以下のコマンドで環境作成 - python -m venv venv

仮想環境有効

  • win 版
    • 仮想環境を作成したディレクトリに移動して以下のコマンドを実行
      • .\venv\Scripts\activate

仮想環境無効

  • win 版
    • 以下のコマンド実行
      • deactivate

デバッグツールの環境作成

  • win 版

    • 以下のプロジェクトのディレクトリ構成を元に説明

      • Project
        • .vscode/
        • venv/
        • main.py
      1. .vscode/に settings.json ファイルを追加

      2. setting.json ファイルに以下の内容を記述して保存 { "python.venvPath": "../venv", "python.pythonPath": "../venv" }

        python の path に python.exe があるパスを指定 venv ディレクトリは setting.json がおいているディレクトリの一つ上においているので 相対パス設定の"../venv"でうまくいく

      3. launch.json に環境変数 PYTHONPATH を設定する

        • これを設定しないと自作したモジュールをインポートしてもパスが通っていないからデバッグした時にインポートでエラーとなる
        1. launch.json を作成

        2. "configurations"項目に"env"項目を追加

        3. 環境変数"PYTHONPAT"を通す

          • こんな感じ

            launch.json ↓ { // IntelliSense を使用して利用可能な属性を学べます。 // 既存の属性の説明をホバーして表示します。 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "justMyCode": true, // 自作モジュールをアクティブにしているファイルからでも実行できるようにするためパスを通している "env": { "PYTHONPATH": "${workspaceFolder}" } } ] }

          • 参考サイト Visual Studio Code で Python デバッグ実行

      4. デバッグ実行してブレークポイントで動くかチェック

        • ちなみに F5 キーでデバッグ実行!
        • launch.json がなければ生成する
    • 参考サイト

コードチェックのツール mypy の環境作成

  • win 版
    • flake8
      • 以下のコマンドで flake8 をインストール pip install flake8
      • flake8 を利用する拡張機能を追加
      • flake8 の設定ファイル tox.ini ファイルをワークススペースのトップディレクトリに配置
      • vscode ワークスペースの設定
        • .vscode/setting.json を作成
        • setting.json に下記の記述を追加 // flake8 の設定 // 絶対パスでないと機能しない "cornflakes.linter.executablePath": "インストールした flake8.exe の絶対パス(相対パスだとだめだった)", // lint を有効 "python.linting.enabled": true, // デフォルトの lint セーブは無効 "python.linting.lintOnSave": false, // 初期状態の pylint は無効 "python.linting.pylintEnabled": false, // デフォルトの flake8 は無効 "python.linting.flake8Enabled": false,
      • メモ
        • ファイルを開かないと問題点が表示しない
        • 全ファイルを問題点を出すには flake8 ./ をターミナルに打てばカレントディレクトリ内にすべての py ファイルをチェックできた
      • 参考サイト VSCode での Python 開発でリアルタイムにコードチェックが走るようにする

フォーマットに合わせてコード整形する環境作成

  • win 版

    • 以下のコマンドで black をインストール pip install black

    • VSCode で Black を使うように設定

      • グローバル設定ファイル settgins.json に以下の記述を追加 "python.formatting.provider": "black"
    • alt + shift + f のショートカットキーでコード整形を実行

      • Black で整形するための拡張機能がなければインストールを要求するのでその場合はインストール
    • コードが整形されていたら成功

    • 参考サイト

コード補間の環境作成

単体テストの環境構築

  1. pytest を利用
    • pip でインストール
      • pip install pytest
  2. tests ディレクトリを作成
    1. 作成したディレクトリに****init**.py** を作成
      • これを作成しないと自作パッケージのインポートでうまくいかずテストが実行できない
  3. py ファイルを作成
    • test_xxx の関数を作成する
      • 関数名に test と頭につけないとテスト対象として認識されない
  4. テストするコードを記述したり、テストする自作モジュールをインポートする
  5. テスト用の py ファイルを開くとアクティブバーにテストアイコンが出るのでクリック
  6. テスト用の環境作りますかというボタンがあるのでボタンを押す
  7. settings.js に tests ディレクトリのパスを指定 こんな感じ(cli_simple ディレクトリ中にあるテストコードが入っている tests ディレクトリを指定) "${workspaceFolder}/cli_simple/tests",
  8. test_xxx.py というテスト用の py ファイルを作成
    • test.py というファイルではテストフレームワークで認識しないので注意

pip パッケージ管理環境構築

pip でインストールしたパッケージを一括で更新したりするケースがあるから

  1. pip-reviewを利用
    • pip でインストール
      • pip install pip-review

pytest の collect-only コマンドからテストするように足りないパッケージを教えてくれる

  1. 以下のコマンドを実行

    • pytest collect-only
      • テストできるパッケージについての情報など一覧が出る

pytest を使ったコードデバッグ方法

pip でインストールしたパッケージ一覧をエクスポートとインポート方法

  • エクスポート方法

    • 以下のコマンドでインストールしたパッケージ一覧を記載したファイルをエクスポートできる pip freeze > requirements.txt
  • インポート方法

    • 以下のコマンドで requirements.txt に記載したパッケージ一覧をインポートできる pip install -r requirements.txt

単純作業をシェル or バッチファイルで自動化

  • Shell ディレクトリにまとめている
  • 自動化リスト
    • 新規開発プロジェクトを作成

Django

ローカライズ対応

  • 以下のサイトをまず参考にした
    • https://blog.narito.ninja/detail/86/
    • 項目[翻訳ファイルの作成]の前まではそのまま使えた
      • django-admin makemessages -l ja
      • 上記のコマンドを実行したら以下のエラーが出た
        • Django makemessages command generates error: "xgettext: Non-ASCII string"
      • これのサイト以外のを参考にした
  • 次はこのサイトが参考になった
  • ローカライズテキストの追加やコンパイルなど残り対応について

開発メモ

  • クラスのdictにはクラス変数定義の要素が入っているが、init内でクラス変数定義しないと要素が入らない

    • dictが要素に入らないケース

        class Test(object):
            value: int = 0
      
        test: Test = Test()
        # __dict__を出力しても空になっている
        print(test.__dict__)
      
    • dictに要素が入るケース

       class Test(object):
           def __init__(self):
               self.value = 0
      
       test: Test = Test()
       # __dict__を出力するとvalue要素がある
       print(test.__dict__)
      
  • static ディレクトリは各アプリディレクト内で作成しないといけない

    • django で js ファイルを配置したかったので以下のサイトを参考にした
    • この通りにやったのだが、js ファイルが読み込まれなかった
    • 次に以下のサイトを参考にした
    • アプリディレクトリに static ディレクトリを作成してその中に js ファイルを配置した
    • このやり方だとうまくいった
    • static ディレクトリはアプリディレクトリで作成しないだめみたい
    • 利用できる static ディレクトリを調べるコマンドがある
      • python.exe .\manage.py findstatic .
      • これで現在利用できる static ディレクトリ一覧が表示する

参考サイト