hotch-potch, Note to self

いろいろ作業記録

Python on Windows, Note to self

1.はじめに

Windows上でのPython開発における、細々としたことの覚え書きです。

2.開発環境構築

(1)Pythonインストール

(書き中)

(2)複数のPythonバージョンを切り替え

参考:https://python-beginner.blog/multiversion/

ターミナルを開く。 ここでは、既にVer.3.10とVer.3.13がインストールされているものとする。

#現在のバージョンを確認
C:\Users\hoge>py -0p
 -V:3.13 *        C:\Applications\python\Python313\python.exe
 -V:3.10          C:\Applications\Python\Python310\python.exe

複数バージョンのPythonがインストールされていても、 環境変数を定義し、特定のバージョンを指定することができます。

設定→システム→バージョン情報→システムの詳細設定を開く
システムのプロパティ→環境変数を開く
環境変数PY_PYTHONを定義して、バージョン番号を記入

先ほどの環境変数を適用のため、ターミナルを閉じて、改めて開く。(VSCodeの場合は、VSCodeを開きなおす必要があります)

C:\Users\hoge>py -0p
 -V:3.13          C:\Applications\python\Python313\python.exe
 -V:3.10 *        C:\Applications\Python\Python310\python.exe

(3)仮想環境の準備

#作業ディレクトリを準備
C:\Users\hoge>md myproject
C:\Users\hoge>cd myproject

#構築
C:\Users\hoge\myproject>py -m venv venv 

最後の「venv」は任意の名前で構いません。 この表記の例が多いですので、差しさわりなければこのままで。

(4)作り直した仮想環境に、パッケージを復元

参考:https://note.nkmk.me/python-pip-install-requirements/

requirements.txtを使って、パッケージ情報を容易に移し替えられます。

#作り直す前の仮想環境の、パッケージ情報を書き出す
C:\Users\hoge\myproject>py -m pip freeze > requirements.txt
#構築
C:\Users\hoge\myproject>py -m venv venv 
#作り直したあとの仮想環境に、パッケージ情報を読み込ませる
C:\Users\hoge\myproject>py -m pip install -r requirements.txt

(5)pipのライブラリのアップデート

参考:https://zenn.dev/haretokidoki/articles/8836fecf6b4cfc

VSCoderequirements.txtを開くと、pipパッケージの更新状況が分かります

pip-review · PyPIをインストールする

C:\Users\hoge\myproject>py -m pip install pip-review  
# 更新可能なものを、一括アップデートする
C:\Users\hoge\myproject>pip-review --auto

#パッケージ情報を書き出す
C:\Users\hoge\myproject>py -m pip freeze > requirements.txt

4.streamlit

(1)VSCodeのデバッガー連携

参考:https://ploomber.io/blog/streamlit-debugging/

.vscode\launch.jsonに下記の設定を追記する。

  • ポイント・下記の記入を忘れないこと
    • "module": "streamlit",
    • "justMyCode": false,
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python デバッガー: 現在のファイル",
            ・・・(省略)・・・
        },
        {
            "name": "streamlit デバッガー: 現在のファイル",
            "type": "debugpy",
            "request": "launch",
            "module": "streamlit",
            "console": "integratedTerminal",
            "justMyCode": false,
            "args": [
                "run",
                "${file}",
            ]
        }
    ]
}

実行とデバッグのメニューに、「streamlit デバッガー」が追加されていますので、こちらを実行します。

(2)VSCodeデバッグ実行でブラウザを開かせないようにする

参考:Supress new browser window once app is started execution - Using Streamlit - Streamlit

コンフィグファイルに指定

.streamlit\config.toml

[server]
headless = true

実行時引数に指定

.vscode\launch.json--server.headlessを追記する。

{
            ・・・(省略)・・・
        },
        {
            "name": "streamlit デバッガー: 現在のファイル",
            "type": "debugpy",
            "request": "launch",
            "module": "streamlit",
            "console": "integratedTerminal",
            "justMyCode": false,
            "args": [
                "run",
                "${file}",
                "--server.headless",
                "true"
            ]
        }
    ]
}