初めてのPython実践試験学習 第六回「venvの削除と知っておきたいアレコレ」

こんにちは、吉政創成 菱沼です。

今回もPythonエンジニア育成推進協会のPython 3 エンジニア認定実践試験の主教材「Python実践レシピ/技術評論社」を使って学びたいと思います。

前回は、venvによる仮想環境の概要と、作成・有効化・無効化の方法について学習しました。

今回は、仮想環境の削除・作り直しや周辺知識について学びたいと思います。

本記事は以下の記事の続きとなります。興味がある方はそちらもご参照ください。

初めてのPython実践試験学習 第五回「venvでPythonの仮想環境を作って起動する方法」

venvで作った仮想環境を削除してみよう。

さて、venvによる仮想環境を作ることの利点の一つとして、不要になったら削除しやすいことがあります。他の環境に影響を及ぼすことなく、不要なパッケージごと環境を削除できるということは、環境を汚さずに済むというだけでなく、放置されたパッケージによるセキュリティリスクも抑えられるのでいいことづくめです。

というわけで、不要になった仮想環境の削除ですが、Windowsならそのままそのディレクトリごと削除してしまえばいいのですが、コマンドで削除したいなら以下のようにします。

  • Windowsコマンドプロンプトで削除する
rmdir /s (ディレクトリ名)

※[cd]コマンドでカレントディレクトリをフォルダがある場所に移動しておくか、絶対パスか相対パスで実行してください。

オプションSをつけると、指定したディレクトリ内のすべてのディレクトリとファイルを削除してくれます。これを実行すると、「Y/N?」で削除していいか確認されますので、yと入力・実行して完了です。こんな感じ。

ちなみに、Unix系OSの場合は以下のコマンドで実行できるそうです。

$ rm -rf env

Windows Power Shellで実行する場合は以下のコマンドになるとのこと。

Remove-Item -Recurse -Force -Confirm:$false env

環境を作り直したいなら、消して、作って、時々requirements.txt

さて次に、仮想環境を作り直ししたいときの方法です。

——————————-

P.14
pip uninstallコマンドは依存関係にあるパッケージのアンインストールはできません。依存関係にあるパッケージもアンインストールしたい場合は、すべてのパッケージ名を個別に指定する必要がありますが、依存関係が多いと手間がかかります。そのような場合は、次の手順で仮想環境を作り直すことで作業を簡略化できます。

——————————-

ここで言われている手順は、仮想環境を削除→[python -m venv (ディレクトリ名)]で仮想環境を再作成することになります。作り直しているので中身はまっさらな状態です。

この後、以前と同じパッケージで残しておきたかったものがあるのなら、requirements.txtファイルを使って同じ環境にしてしまうという手段も使えるそうです。requirements.txtについてはテキストではP.5、私の学習では第三回のときに書いています。

venvで知っておくとお得なこと

ここからはvenv周辺の知識です。

——————————-

P.15
venvは、以下のPythonパッケージの依存関係を管理するツールの内部でも使われています。

ツール名公式サイト
Pipenvhttps://pipenv.pypa.io/
Poetryhttps://python-poetry.org/

上記に挙げたのはpipとvenvの役割を兼ねるサードパーティーツールですが、pipとvenvにはない以下の特徴があります。

・Pythonパッケージの依存関係が分かりやすい

・Pythonパッケージのインストール時に、自動的にvenvで仮想環境を作成する

——————————-

どちらもパッケージ管理ツール…ということでして。パッケージ管理ツールを使う事の利点は、開発プロセスの効率化や依存関係の管理、ツール導入のハードルが低くなる、というものがあるそうです。

ちなみにサードパーティー製であることもあってか、誰もが使ったことがあるというツールではないため、もし使うとするなら、開発効率を下げないよう、事前にツールの特徴や使い方を習得するよう注意されています。

それぞれのツールの詳細や比較について説明されているブログがたくさんありましたので、いくつか挙げておきます。興味がある方はご一読ください。

Python パッケージ管理ツール比較: Poetry vs Pipenv vs Rye

pipとpipenvとpoetryの技術的・歴史的背景とその展望

Poetryをサクッと使い始めてみる

Pipenvを使ったPython開発まとめ

そういえば、パッケージ管理ツールという言葉で、Pythonエンジニア育成推進協会の寺田さまが「Pythonのおすすめ環境ver.2024」の記事で、最近uvというツールを試用中というお話をされていたのを思い出しました。

venvでエラーが起きたときにどうするか

最後に、WindowsのPowerShellで作業しているときに、仮想環境の有効化ができなかったときの対処方法です。こちらについては手元で実行せず、必要箇所のみの引用で失礼します。

——————————-

P.16
Windowsの実行ポリシーがRestricted(スクリプトの実行を許可しない)の場合、PowerShell上で仮想環境を有効化しようとするとPSSecurityExceptionを送出して失敗します。実行ポリシーについての詳細は以下URLを参照してください。

https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.4&viewFallbackFrom=powershell-7.1

※テキストに書かれていたURLを実行すると、上記のURLにリダイレクトされます。

(中略)

PowerShell上で仮想環境を有効化するには、「Set-ExecutionPolicy -ExecutionPolicy RemoteSighned -Scope CurrentUser」を実行し、実行ポリシーをRemoteSighned(スクリプトの実行を許可する)に変更する必要があります。

——————————-

こちらの記事も参考になるかもしれません。ご参考まで。

Windows で venv 事前準備 (PowerShell の実行ポリシーの確認と設定)

【Python】新しいwindows PCを買ったら、venv/Scripts/activateできなくなった話

それではきりが良いので、今回はこちらで終了です。

お付き合いいただきありがとうございました。

実践試験について知りたい方は以下をご覧ください。

●Python3エンジニア認定実践試験

https://www.pythonic-exam.com/exam/jissen

PAGE TOP