米Microsoftは、コードエディタ「Visual Studio Code」の、Python/Jupyter向け拡張機能の2024年8月版を、7月31日(現地時間)に公開した。
Microsoft、「Visual Studio Code」のPython/Jupyter向け拡張機能の2024年8月版を公開|CodeZine(コードジン)
そして、デバッグ中に変数の値をエディター画面に表示する機能も加わった。この機能を利用することで、専用の画面を開いたり、変数を表示している部分にマウスポインタを当てたりすることなく、変数の値を確認できる。利用するには、設定ファイル「settings.json」を開き、"debugpy.showPythonInlineValues"の項目をtrueに変更する必要がある。
Microsoft、「Visual Studio Code」のPython/Jupyter向け拡張機能の2024年8月版を公開|CodeZine(コードジン)
⇧ う~む、「VS Code(Visual Studio Code)」のどのバージョンで導入された機能なのかサッパリ分からん...
元ネタのMicrosoftの周知ブログを確認したところ、
⇧ 何やら「拡張機能」をインストールする必要があるってことらしいですね...
⇧ 対象の「拡張機能」が分かり辛い...
とりあえず、「VS Code(Visual Studio Code)」のバージョンをアップデートして、
再起動したところ、
{ // ...省略 "debugpy.showPythonInlineValues": true // ...省略 }
⇧「.vscode/settings.json」に追記して有効になったので、「VS Code(Visual Studio Code)」の「拡張機能」としては「Python Debugger」というもので良さそうな気がする。
Pythonの「__pycache__」ディレクトリについて
Pythonの公式のドキュメントによると、
6.1.3. "コンパイル" された Python ファイル
モジュールの読み込みを高速化するため、Python はコンパイル済みの各モジュールを __pycache__
ディレクトリの module.version.pyc
ファイルとしてキャッシュします。
Python はソースの変更日時をコンパイル済みのものと比較し、コンパイル済みのものが最新でなくなり再コンパイルが必要になっていないかを確認します。これは完全に自動で処理されます。また、コンパイル済みモジュールはプラットフォーム非依存なため、アーキテクチャの異なるシステム間で同一のライブラリを共有することもできます。
Python は2つの場合にキャッシュのチェックを行いません。
2つめは、ソース・モジュールのない場合で、キャッシュの確認を行いません。ソースのない (コンパイル済みのもののみの) 配布をサポートするには、コンパイル済みモジュールはソース・ディレクトリになくてはならず、ソース・ディレクトリにソース・モジュールがあってはいけません。
⇧とのこと。
で、「__pycache__」ディレクトリですが、
要点をまとめると。
⇧ 上記サイト様によりますと、Python 3.2で導入されたとのこと。
キャッシュを作成しないようにもできるようで、
PYTHONDONTWRITEBYTECODE
環境変数でキャッシュを作成するか否かを制御できる。
作成したくない場合1
にしときましょう。
⇧ 環境変数「PYTHONDONTWRITEBYTECODE」の値で制御できるらしい。
ちなみに、自分の環境(venvによるPython仮想環境)では、環境変数「PYTHONDONTWRITEBYTECODE」自体が無かったのですが、「__pycache__」ディレクトリが作成されたので、デフォルトではキャッシュが作成される設定のようですね。
後は、
⇧「__pycache__」ディレクトリの出力先を変更できるそうな。
Pythonの「__pycache__」ディレクトリが不具合を起こすリスクは無いのか?
Pythonの仕組みで良しなに生成してくれてる「__pycache__」ですが、何か不具合を誘発するリスクは無いのか?
ちなみに、
⇧ 上記サイト様によりますと、Pythonでは「__pycache__」ディレクトリ以外にも、様々な「キャッシュ(chache)」が利用できる模様。
話が脱線しましたが、
⇧ 上記サイト様によりますと、Dockerコンテナのような環境で「__pycache__」が悪影響を及ぼすことがあるそうな。
権限周りが原因と思われるので、「__pycache__」が悪いわけでは無い気がするんだけど...
ただ、
⇧ Gitでの管理対象からは「__pycache__」を除外するのが一般的っぽいですね。
VS Code(Visual Studio Code)上で非表示にしておくのが良いか?
で、「VS Code(Visual Studio Code)」の「.vscode/settings.json」に設定を追加することで、「VS Code(Visual Studio Code)」上の左サイドバーの1つ「Explorer」で、「__pycache__」ディレクトリなどを非表示にできるらしい。
⇧ Python関連以外のディレクトリ、ファイルも非表示にできるそうな。
というわけで、「.vscode/settings.json」に設定を追加してみました。
■C:\Users\Toshinobu\Desktop\soft_work\python_work\fastapi\.vscode\settings.json
/** * VS Code(Visual Studio Code)の仕様で、 * ・「settings.json」 * ・「tasks.json」 * ・「launch.json」 * の3つのJSONファイルには「コメントアウト」が利用できるらしい。 * https://code.visualstudio.com/docs/languages/json#_json-with-comments */ // In addition to the default JSON mode following the JSON specification, // VS Code also has a JSON with Comments (jsonc) mode. // This mode is used for the VS Code configuration files such as // ・settings.json, // ・tasks.json, // or // ・launch.json. // When in the JSON with Comments mode, you can use // ・single line (//) // as well as // ・block comments (/* */) // as used in JavaScript. // The mode also accepts trailing commas, but they are discouraged and the editor will display a warning. // // The current editor mode is indicated in the editor's Status Bar. // Select the mode indicator to change the mode and to configure how file extensions are associated to modes. // You can also directly modify the files.associations setting to associate file names or file name patterns to jsonc. { "python.analysis.extraPaths" : [ // "${workspaceFolder}" // ,"${workspaceFolder}/app" // ,"${workspaceFolder}/app/src" // ,"${workspaceFolder}/app/src/controller" // ,"${workspaceFolder}/app/src/entity" // ,"${workspaceFolder}/app/src/repository" // ,"${workspaceFolder}/app/src/service" ], // 【Windowsの設定】VS Code(Visual Studio Code)上で、環境模様「PYTHONPATH」に追加 "terminal.integrated.env.windows": { "PYTHONPATH": "${workspaceFolder};${workspaceFolder}/app" }, // 【Linuxの設定】VS Code(Visual Studio Code)上で、環境模様「PYTHONPATH」に追加 "terminal.integrated.env.linux": { "PYTHONPATH": "${workspaceFolder}:${workspaceFolder}/app" }, // VS Code(Visual Studio Code)上で、.envファイルを認識させる "python.envFile": "${workspaceFolder}/.env", // VS Code(Visual Studio Code)上のExplorerで非表示にしたいファイル、フォルダ "files.exclude": { "**/*.pyc": {"when": "$(basename).py"}, "**/__pycache__": true, }, // pytestの設定 "python.testing.unittestEnabled": false, "python.testing.pytestEnabled": true, "python.testing.pytestArgs": [ "--cov=." ,"--cov-report" ,"xml" ,"--capture=no" ], "coverage-gutters.showGutterCoverage": false, "coverage-gutters.showLineCoverage": true }
⇧ という感じで、保存。
そうすると、「VS Code(Visual Studio Code)」上の「Explorer」では、「__pycache__」ディレクトリなどが非表示になりました。
「VS Code(Visual Studio Code)」以外では、表示されたまま。
ちなみに、
⇧ 上記サイト様にありますように、本来、「JSON」ファイルで「コメントアウト」は使えません。
「JSON」ファイルで「コメントアウト」を使えるようにしたい場合は、
Scanner and parser for JSON with comments.
⇧ 公開されているライブラリをインストールしたりとかするしかないっぽいですな...
何やら、
tsconfig.jsonには、コメントが書けます。
ところが、試してみたところJSON5なら使えるはずの豊富な文法が全然使えなかったり、JSONとJSON5にかけていたformatOnSaveの設定が効かなかったので、違うということに気付きました。
⇧ という感じで、「JSON5」なるものもあり、互換性が無いと...
「JSON」ファイルで「コメントアウト」できるのをデフォルトにしておいて欲しかったんだが、「JSON」に対する「RFC(Request for Comments)」とか出て来なかったんかね?
ネットの情報によると、
RESTful APIのデータフォーマットなどで広く使われているJSON。IETFはJSON仕様「RFC 8259」を発表。従来の仕様をブラッシュアップしつつECMAの仕様との統一も実現した、事実上最後のJSON仕様になると見られる。
事実上最後のJSON仕様「RFC 8259」と「ECMA-404 2nd Editon」公開。UTF-8エンコード必須に - Publickey
⇧ とあり、2017年時点で、「JSON」に対する「RFC(Request for Comments)」が打ち止めの模様...
「コメントアウト」を記載できるのを標準にしてくれた方が良いと思うんだけどな...
話が脱線しましたが、Pythonのお作法、いろいろ覚えていかねばですが、「VS Code(Visual Studio Code)」のPython向けの設定とかも把握していく必要があるのが辛いですね...
プログラミングの処理の部分以外の余計なことにリソースを使いたくないんだけど、開発環境周りで時間取られることが多過ぎるのと、不毛な時間を浪費させられる徒労感とで疲弊が甚だしいんだが...
毎度モヤモヤ感が半端ない…
今回はこのへんで。