sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

python の venv を利用する (visual studio code)

AI による画像生成(Stable Diffusion)なんかを利用しようとすると、Python 環境が欠かせません。こうした Python 環境は、OS にインストールしたものだけではなくて、仮想環境を利用しておくことが重要です。

技術的な進歩が異常にはやいので、脆弱性の問題もありますが、移り変わりがはやいということなので、流行りのアプリ、拡張、環境もコロコロと変わっています。利用するための環境設定は、なるべく OS 環境を汚すようにするといいと思います。

Python を勉強する練習環境なんかのときにも利用していたと思います。

そんな感じなので Python の仮想環境を用意しておこうというメモです。(Stable Diffusion を入れるフォルダーなどに、venv 環境を用意する際に、後述のエラーがでたりした点もメモした)

PowerShell のポリシー設定

Visual Studio CodePython の仮想環境を有効化するためには、Power Shell のポリシー変更が必要です。

Power Shell を管理者権限で起動して、以下のポリシー設定を実行、「Y」で有効化します。

Set-ExecutionPolicy RemoteSigned

Python をインストールしても正しく動作しない例

PythonWindows にインストールしても、バージョン表示さえ上手くできないことがありました。

具体的には、バージョンを確認するコマンドを打っても、「Python」という返却しか得ることができないような状態です。

Python --version
Python

OS の更新などが原因で後からこの状態になることもあるみたいです。

こうなると pip や venv のコマンドも理解できないような状態です。私の環境だと、Pythonインストーラーを利用して Repair をしても変化なし。

ややこしいのが python だと反応しないのに py だと動くようなケースがあります。これで進めて大丈夫でしょうか。キーワードから直接 py を利用する分はいいんだけど、バッチやマクロで python のコマンドを利用していると動かない恐れがあります。なんで、危かっしい環境はおススメできないと思います。

アプリ実行エイリアスをオフにする

Windows の設定から「アプリと機能」の中から「アプリ実行エイリアス」を開いて、以下のように「python」と「python3」を OFF にしたうえで、インストール済の Python をアンインストールし、再度、Python をインストール。(PATH の設定も忘れずに✅しておこう!)

そのうえで、OS を再起動します。

ここまでするとコマンドプロンプトでも Python のバージョンを正しく表示できるようになりました。

バージョン表示ができないと venv 作成でもコマンドが上手く実行できなかったり、コマンドが実行できても有効化でエラーが出たりして、環境として危かったり、不安定になります。

venv を実行する

venv を作成するコマンドは現在は以下のとおりです。

python -m venv #作成する venv の名前#
# 例
python -m venv sample_venv

実行すると、作成した venv の名前のフォルダーが(実行パス上に)生成されます。なので、Stable Diffusion の関係するパス上で実行するとよいと思います。

補足:venv を作成する際 python3 -m ... とする例もあるみたいです。setup_pythonシンボリックリンクだと思いますが、公式マニュアルは上のとおりです。(もしくは特定の python 3.x 実行の明示?)

このあと、「shift+ctrl+P」でPythonインタープリターの指定で、作成した venv を指定すると、ターミナルが切り替わり、venv を利用していることがわかる状態になるはずです。

上手くいかないときは、作成された venv フォルダーの中の Scripts\activate.bat を実行します。

.\(venv フォルダー名)\Scripts\activate.bat

逆に venv を終了するときは deactivate.bat を利用することができます。

参考