Python Virtualenvインストール使い方、VScodeで仮想環境

Virtualenvインストール準備

Pythonが既にインストールされていて、pipが使用出来る事

インストール

pip install virtualenv

使用方法

仮想環境を作成

pythonのバージョンを指定して仮想環境作成(これがお勧め)。 Pythonのバージョンも指定しておく。 複数のPythonのバージョンがあっても仮想環境ごとにPythonのバージョンやライブラリのバージョンも統一できる。(ただVirtualenvではrequirements.txtは作成されないので自分で各ライブラリのバージョン管理をしないといけない。 しかしVirtualenvは手軽。 ライブラリ等も管理したい場合やpyenvを使用。)

virtualenv -p python3.10 仮想環境名 // Windows, Linuxの場合

現在のディレクトリの下に指定した仮想環境名のディレクトリを作成して仮想環境を作成。

virtualenv 仮想環境名 // Windows, Linuxの場合

これも同じ

python -m virtualenv 仮想環境名 // Windows, Linuxの場合

仮想環境を起動

『パス』は仮想環境を作った時のディレクトリ

C:\パス\仮想環境名>Scripts\activate // Windowsの場合

~ $ source 環境名/bin/activate // Linuxの場合

起動 (activate)すると、(仮想環境名)が表示される。

(仮想環境名)C:\パス\仮想環境名>

仮想環境を終了

(仮想環境名)\パス\仮想環境名>deactivate // Windows, Linuxの場合

環境下でパッケージインストール

(仮想環境名)\パス\仮想環境名> pip install パッケージ名 // Windows, Linuxの場合

(仮想環境名)が表示された状態で、pip installを実行するだけ。 インストールされたパッケージはこの仮想環境下でしか使用できない。

バージョン確認

仮想環境が実行されていない時に

virtualenv –version // Windows, Linuxの場合

プロジェクト削除

仮想環境の親ディレクトリに移動し以下を実行

rd /S 仮想環境名 // Windowsの場合

rm -rf 仮想環境名 // Linuxの場合

Pythonのパス

which python // Linuxの場合

VScodeで仮想環境で実行

仮想環境のPython Interpreterを選択

  1. 作成した仮想環境名のディレクトリを『Open Folder』で開く。
  2. VScodeの右下のPythonのバージョンが表示されている部分をクリックする。 以下では『3.10.12 64-bit』の部分をクリックします。
  1. すると色々画面上部中央どのpythonインタープリターを使うか一覧が表示される。 仮想環境を作成する時にPythonのバージョンも選択していたら、下の『Recommended』が『(‘tf’:venv)』となっているのでそれを選択する。 

右下のPythonのバージョン表示の右に(‘tf’:venv)が表示されるようになります。

VScodeの設定値追加

VScodeのsetting.jsonに以下を追記して、VScodeを再起動。 これで、毎回powershellでset-executionpolicy remotesignedを実行しなくても、仮想環境を起動できる。

{
    "terminal.integrated.env.windows": 
    { 
        "PSExecutionPolicyPreference": "RemoteSigned" 
    } 
}

VScodeのTerminalから仮想環境起動

VScodeのTermialから仮想環境を起動(activate)してからデバッグするプログラムを起動する。

VSCodeでCtrl+Shift+@のショートカットでも仮想環境を起動できる。

Linuxの場合は、Terminalで仮想環境を起動(activate)して、その環境内でVScodeを起動する。

$ code

VScodeの設定値変更しない場合

管理者用Powershellで以下の、RemoteSigned に設定すると、VScodeが仮想環境を起動できるようになる。 これは毎回実行する必要がある。(なので、前述の様にsetting.jsonに記述する方法がおすすめ)

set-executionpolicy remotesigned

Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser

コメント