]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Japanese translation for `docs/ja/docs/virtual-environments.md` (#13304)
authork94-ishi <32672580+k94-ishi@users.noreply.github.com>
Wed, 19 Mar 2025 12:22:33 +0000 (21:22 +0900)
committerGitHub <noreply@github.com>
Wed, 19 Mar 2025 12:22:33 +0000 (13:22 +0100)
docs/ja/docs/virtual-environments.md [new file with mode: 0644]

diff --git a/docs/ja/docs/virtual-environments.md b/docs/ja/docs/virtual-environments.md
new file mode 100644 (file)
index 0000000..791cf64
--- /dev/null
@@ -0,0 +1,831 @@
+# ä»®æƒ³ç’°å¢ƒ
+
+Pythonプロゞェクトの䜜業では、**仮想環境**たたは類䌌の仕組みを䜿甚し、プロゞェクトごずにむンストヌルするパッケヌゞを分離するべきでしょう。
+
+/// info | æƒ…å ±
+
+もし、仮想環境の抂芁や䜜成方法、䜿甚方法に぀いお既にご存知なら、このセクションをスキップするこずができたす。🀓
+
+///
+
+/// tip | è±†çŸ¥è­˜
+
+**仮想環境**は、**環境倉数**ずは異なりたす。
+
+**環境倉数**は、プログラムが䜿甚できるシステム内の倉数です。
+
+**仮想環境**は、ファむルをたずめたディレクトリのこずです。
+
+///
+
+/// info | æƒ…å ±
+このペヌゞでは、**仮想環境**の䜿甚方法ず、そのはたらきに぀いお説明したす。
+
+もし**すべおを管理するツヌル**Pythonのむンストヌルも含むを導入する準備ができおいるなら、<a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">uv</a> ã‚’お詊しください。
+
+///
+
+## ãƒ—ロゞェクトの䜜成
+
+たず、プロゞェクト甚のディレクトリを䜜成したす。
+
+私は通垞 home/user ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®äž­ã« `code` ãšã„うディレクトリを甚意しおいお、プロゞェクトごずに1぀のディレクトリをその䞭に䜜成しおいたす。
+
+<div class="termy">
+
+```console
+// Go to the home directory
+$ cd
+// Create a directory for all your code projects
+$ mkdir code
+// Enter into that code directory
+$ cd code
+// Create a directory for this project
+$ mkdir awesome-project
+// Enter into that project directory
+$ cd awesome-project
+```
+
+</div>
+
+## ä»®æƒ³ç’°å¢ƒã®äœœæˆ
+
+Pythonプロゞェクトでの**初めおの**䜜業を開始する際には、**<abbr title="他の遞択肢もありたすが、これはシンプルなガむドラむンです">プロゞェクト内</abbr>**に仮想環境を䜜成しおください。
+
+/// tip | è±†çŸ¥è­˜
+
+これを行うのは、**プロゞェクトごずに1回だけ**です。䜜業のたびに行う必芁はありたせん。
+
+///
+
+//// tab | `venv`
+
+仮想環境を䜜成するには、Pythonに付属しおいる `venv` ãƒ¢ã‚žãƒ¥ãƒŒãƒ«ã‚’䜿甚できたす。
+
+<div class="termy">
+
+```console
+$ python -m venv .venv
+```
+
+</div>
+
+/// details | ã“のコマンドの意味
+
+- `python` : `python` ãšã„うプログラムを呌び出したす
+- `-m` : ãƒ¢ã‚žãƒ¥ãƒŒãƒ«ã‚’スクリプトずしお呌び出したす。どのモゞュヌルを呌び出すのか、この次に指定したす
+- `venv` : é€šåžžPythonに付随しおむンストヌルされる `venv`モゞュヌルを䜿甚したす
+- `.venv` : ä»®æƒ³ç’°å¢ƒã‚’`.venv`ずいう新しいディレクトリに䜜成したす
+
+///
+
+////
+
+//// tab | `uv`
+
+もし <a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">`uv`</a> ã‚’むンストヌル枈みなら、仮想環境を䜜成するために `uv` ã‚’䜿うこずもできたす。
+
+<div class="termy">
+
+```console
+$ uv venv
+```
+
+</div>
+
+/// tip | è±†çŸ¥è­˜
+
+デフォルトでは、 `uv` ã¯ `.venv` ãšã„うディレクトリに仮想環境を䜜成したす。
+
+ただし、远加の匕数にディレクトリ名を䞎えおカスタマむズするこずもできたす。
+
+///
+
+////
+
+このコマンドは `.venv` ãšã„うディレクトリに新しい仮想環境を䜜成したす。
+
+/// details | `.venv` ãŸãŸã¯ãã®ä»–の名前
+
+仮想環境を別のディレクトリに䜜成するこずも可胜ですが、 `.venv` ãšåä»˜ã‘るのが䞀般的な慣習です。
+
+///
+
+## ä»®æƒ³ç’°å¢ƒã®æœ‰åŠ¹åŒ–
+
+実行されるPythonコマンドやむンストヌルされるパッケヌゞが新しく䜜成した仮想環境を䜿甚するよう、その仮想環境を有効化したしょう。
+
+/// tip | è±†çŸ¥è­˜
+
+そのプロゞェクトの䜜業で**新しいタヌミナルセッション**を開始する際には、**毎回**有効化が必芁です。
+
+///
+
+//// tab | Linux, macOS
+
+<div class="termy">
+
+```console
+$ source .venv/bin/activate
+```
+
+</div>
+
+////
+
+//// tab | Windows PowerShell
+
+<div class="termy">
+
+```console
+$ .venv\Scripts\Activate.ps1
+```
+
+</div>
+
+////
+
+//// tab | Windows Bash
+
+もしWindowsでBashを䜿甚しおいる堎合 (<a href="https://gitforwindows.org/" class="external-link" target="_blank">Git Bash</a>など):
+
+<div class="termy">
+
+```console
+$ source .venv/Scripts/activate
+```
+
+</div>
+
+////
+
+/// tip | è±†çŸ¥è­˜
+
+**新しいパッケヌゞ**を仮想環境にむンストヌルするずきには、再床**有効化**しおください。
+
+こうするこずで、そのパッケヌゞがむンストヌルした**タヌミナル<abbr title="command line interface">CLI</abbr>プログラム**を䜿甚する堎合に、仮想環境内のものが確実に䜿われ、グロヌバル環境にむンストヌルされおいる別のものおそらく必芁なものずは異なるバヌゞョンを誀っお䜿甚するこずを防ぎたす。
+
+///
+
+## ä»®æƒ³ç’°å¢ƒãŒæœ‰åŠ¹ã§ã‚ã‚‹ã“ãšã‚’ç¢ºèªã™ã‚‹
+
+仮想環境が有効である前のコマンドが正垞に機胜したこずを確認したす。
+
+/// tip | è±†çŸ¥è­˜
+
+これは**任意**ですが、すべおが期埅通りに機胜し、意図した仮想環境を䜿甚しおいるこずを**確認する**良い方法です。
+
+///
+
+//// tab | Linux, macOS, Windows Bash
+
+<div class="termy">
+
+```console
+$ which python
+
+/home/user/code/awesome-project/.venv/bin/python
+```
+
+</div>
+
+`.venv/bin/python` ã«ã‚ã‚‹ `python` ãƒã‚€ãƒŠãƒªãŒã€ãƒ—ロゞェクトこの堎合は `awesome-project` ïŒ‰å†…に衚瀺されおいれば、正垞に動䜜しおいたす ðŸŽ‰ã€‚
+
+////
+
+//// tab | Windows PowerShell
+
+<div class="termy">
+
+``` console
+$ Get-Command python
+
+C:\Users\user\code\awesome-project\.venv\Scripts\python
+```
+
+</div>
+
+`.venv\Scripts\python` ã«ã‚ã‚‹ `python` ãƒã‚€ãƒŠãƒªãŒã€ãƒ—ロゞェクトこの堎合は `awesome-project` ïŒ‰å†…に衚瀺されおいれば、正垞に動䜜しおいたす ðŸŽ‰ã€‚
+
+////
+
+## `pip` ã‚’アップグレヌドする
+
+/// tip | è±†çŸ¥è­˜
+
+もし <a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">`uv`</a> ã‚’䜿甚しおいる堎合は、 `pip` ã®ä»£ã‚ã‚Šã« `uv` ã‚’䜿っおむンストヌルを行うため、 `pip` ã‚’アップグレヌドする必芁はありたせん ðŸ˜Žã€‚
+
+///
+
+もしパッケヌゞのむンストヌルに `pip`Pythonに暙準で付属しおいたすを䜿甚しおいるなら、 `pip` ã‚’最新バヌゞョンに**アップグレヌド**したしょう。
+
+パッケヌゞのむンストヌル䞭に発生する想定倖の゚ラヌの倚くは、最初に `pip` ã‚’アップグレヌドしおおくだけで解決されたす。
+
+/// tip | è±†çŸ¥è­˜
+
+通垞、これは仮想環境を䜜成した盎埌に**䞀床だけ**実行したす。
+
+///
+
+仮想環境が有効であるこずを䞊で説明したコマンドで確認し、アップグレヌドを実行したしょう
+
+<div class="termy">
+
+```console
+$ python -m pip install --upgrade pip
+
+---> 100%
+```
+
+</div>
+
+## `.gitignore` ã‚’远加する
+
+**Git**を䜿甚しおいる堎合䜿甚するべきでしょう、 `.gitignore` ãƒ•ァむルを远加しお、 `.venv` å†…のあらゆるファむルをGitの管理察象から陀倖したす。
+
+/// tip | è±†çŸ¥è­˜
+
+もし <a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">`uv`</a> ã‚’䜿甚しお仮想環境を䜜成した堎合、すでにこの䜜業は枈んでいるので、この手順をスキップできたす ðŸ˜Žã€‚
+
+///
+
+/// tip | è±†çŸ¥è­˜
+
+これも、仮想環境を䜜成した盎埌に**䞀床だけ**実行したす。
+
+///
+
+<div class="termy">
+
+```console
+$ echo "*" > .venv/.gitignore
+```
+
+</div>
+
+/// details | ã“のコマンドの意味
+
+- `echo "*"` : ã‚¿ãƒŒãƒŸãƒŠãƒ«ã« `*` ãšã„うテキストを「衚瀺」しようずしたす。次の郚分によっおその動䜜が少し倉わりたす
+- `>` : `>` ã®å·ŠåŽã®ã‚³ãƒžãƒ³ãƒ‰ãŒã‚¿ãƒŒãƒŸãƒŠãƒ«ã«è¡šç€ºã—ようずする内容を、タヌミナルには衚瀺せず、 `>` ã®å³åŽã®ãƒ•ァむルに曞き蟌みたす。
+- `.gitignore` : `*` ã‚’曞き蟌むファむル名。
+
+ここで、Gitにおける `*` ã¯ã€Œã™ã¹ãŠã€ã‚’意味するので、このコマンドによっお `.venv` ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå†…のすべおがGitに無芖されるようになりたす。
+
+このコマンドは以䞋のテキストを持぀ `.gitignore` ãƒ•ァむルを䜜成したす
+
+```gitignore
+*
+```
+
+///
+
+## ãƒ‘ッケヌゞのむンストヌル
+
+仮想環境を有効化した埌、その䞭でパッケヌゞをむンストヌルできたす。
+
+/// tip | è±†çŸ¥è­˜
+
+プロゞェクトに必芁なパッケヌゞをむンストヌルたたはアップグレヌドする堎合、これを**䞀床**実行したす。
+
+もし新しいパッケヌゞを远加したり、バヌゞョンをアップグレヌドする必芁がある堎合は、もう**䞀床この手順を繰り返し**たす。
+
+///
+
+### ãƒ‘ッケヌゞを盎接むンストヌルする
+
+急いでいお、プロゞェクトのパッケヌゞ芁件を宣蚀するファむルを䜿いたくない堎合、パッケヌゞを盎接むンストヌルできたす。
+
+/// tip | è±†çŸ¥è­˜
+
+プログラムが必芁ずするパッケヌゞずバヌゞョンをファむル䟋えば `requirements.txt` ã‚„ `pyproject.toml` ïŒ‰ã«èš˜èŒ‰ã—おおくのは、ずおも良い考えです。
+
+///
+
+//// tab | `pip`
+
+<div class="termy">
+
+```console
+$ pip install "fastapi[standard]"
+
+---> 100%
+```
+
+</div>
+
+////
+
+//// tab | `uv`
+
+もし <a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">`uv`</a> ã‚’䜿甚できるなら:
+
+<div class="termy">
+
+```console
+$ uv pip install "fastapi[standard]"
+---> 100%
+```
+
+</div>
+
+////
+
+### `requirements.txt` ã‹ã‚‰ã‚€ãƒ³ã‚¹ãƒˆãƒŒãƒ«ã™ã‚‹
+
+もし `requirements.txt` ãŒã‚るなら、パッケヌゞのむンストヌルに䜿甚できたす。
+
+//// tab | `pip`
+
+<div class="termy">
+
+```console
+$ pip install -r requirements.txt
+---> 100%
+```
+
+</div>
+
+////
+
+//// tab | `uv`
+
+もし <a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">`uv`</a> ã‚’䜿甚できるなら:
+
+<div class="termy">
+
+```console
+$ uv pip install -r requirements.txt
+---> 100%
+```
+
+</div>
+
+////
+
+/// details | `requirements.txt`
+
+パッケヌゞが蚘茉された `requirements.txt` ã¯ä»¥äž‹ã®ã‚ˆã†ã«ãªã£ãŠã„たす:
+
+```requirements.txt
+fastapi[standard]==0.113.0
+pydantic==2.8.0
+```
+
+///
+
+## ãƒ—ログラムを実行する
+
+仮想環境を有効化した埌、プログラムを実行できたす。この際、仮想環境内のPythonず、そこにむンストヌルしたパッケヌゞが䜿甚されたす。
+
+<div class="termy">
+
+```console
+$ python main.py
+
+Hello World
+```
+
+</div>
+
+## ã‚šãƒ‡ã‚£ã‚¿ã®èš­å®š
+
+プロゞェクトではおそらく゚ディタを䜿甚するでしょう。コヌド補完やむンラむン゚ラヌの衚瀺ができるように、䜜成した仮想環境を゚ディタでも䜿えるよう蚭定しおください。倚くの堎合、自動怜出されたす
+
+蚭定䟋:
+
+* <a href="https://code.visualstudio.com/docs/python/environments#_select-and-activate-an-environment" class="external-link" target="_blank">VS Code</a>
+* <a href="https://www.jetbrains.com/help/pycharm/creating-virtual-environment.html" class="external-link" target="_blank">PyCharm</a>
+
+/// tip | è±†çŸ¥è­˜
+
+この蚭定は通垞、仮想環境を䜜成した際に**䞀床だけ**行いたす。
+
+///
+
+## ä»®æƒ³ç’°å¢ƒã®ç„¡åŠ¹åŒ–
+
+プロゞェクトの䜜業が終了したら、その仮想環境を**無効化**できたす。
+
+<div class="termy">
+
+```console
+$ deactivate
+```
+
+</div>
+
+これにより、 `python` ã‚³ãƒžãƒ³ãƒ‰ã‚’実行しおも、そのプロゞェクト甚のパッケヌゞがむンストヌルされた仮想環境から `python` ãƒ—ログラムを呌び出そうずはしなくなりたす。
+
+## äœœæ¥­æº–備完了
+
+ここたでで、プロゞェクトの䜜業を始める準備が敎いたした。
+
+/// tip | è±†çŸ¥è­˜
+
+䞊蚘の内容を理解したいですか
+
+もしそうなら、以䞋を読み進めおください。👇🀓
+
+///
+
+## ãªãœä»®æƒ³ç’°å¢ƒïŒŸ
+
+FastAPIを䜿った䜜業をするには、 [Python](https://www.python.org/) ã®ã‚€ãƒ³ã‚¹ãƒˆãƒŒãƒ«ãŒå¿…芁です。
+
+それから、FastAPIや、䜿甚したいその他の**パッケヌゞ**を**むンストヌル**する必芁がありたす。
+
+パッケヌゞをむンストヌルするには、通垞、Python ã«ä»˜å±žã™ã‚‹ `pip` ã‚³ãƒžãƒ³ãƒ‰ (たたは同様の代替コマンド) ã‚’䜿甚したす。
+
+ただし、`pip` ã‚’盎接䜿甚するず、パッケヌゞは**グロヌバルなPython環境**OS党䜓にむンストヌルされたPython環境にむンストヌルされたす。
+
+### å•é¡Œç‚¹
+
+では、グロヌバルPython環境にパッケヌゞをむンストヌルするこずの問題点は䜕でしょうか
+
+ある時点で、あなたは**異なるパッケヌゞ**に䟝存する倚くのプログラムを曞くこずになるでしょう。そしお、これらの䞭には同じパッケヌゞの**異なるバヌゞョン**に䟝存するものも出おくるでしょう。😱
+
+䟋えば、 `philosophers-stone` ïŒˆè³¢è€…の石ずいうプロゞェクトを䜜成するずしたす。このプログラムは **`harry` ïŒˆãƒãƒªãƒŒïŒ‰ãšã„うパッケヌゞのバヌゞョン `1`**に䟝存しおいたす。そのため、 `harry` ïŒˆãƒãƒªãƒŒïŒ‰ã‚’むンストヌルする必芁がありたす。
+
+```mermaid
+flowchart LR
+    stone(philosophers-stone) -->|requires| harry-1[harry v1]
+```
+
+それから、 `prisoner-of-azkaban` ïŒˆã‚¢ã‚ºã‚«ãƒãƒ³ã®å›šäººïŒ‰ãšã„う別のプロゞェクトを䜜成したずしたす。このプロゞェクトも `harry` ïŒˆãƒãƒªãƒŒïŒ‰ã«äŸå­˜ã—おいたすが、**`harry` ïŒˆãƒãƒªãƒŒïŒ‰ã®ãƒãƒŒã‚žãƒ§ãƒ³ `3`**が必芁です。
+
+```mermaid
+flowchart LR
+    azkaban(prisoner-of-azkaban) --> |requires| harry-3[harry v3]
+```
+
+しかし、ここで問題になるのは、もしロヌカルの**仮想環境**ではなくグロヌバル環境にパッケヌゞをむンストヌルするなら、 `harry` ïŒˆãƒãƒªãƒŒïŒ‰ã®ã©ã®ãƒãƒŒã‚žãƒ§ãƒ³ã‚’むンストヌルするか遞ばないずいけないこずです。
+
+䟋えば、 `philosophers-stone` ïŒˆè³¢è€…の石を実行するには、たず `harry` ïŒˆãƒãƒªãƒŒïŒ‰ã®ãƒãƒŒã‚žãƒ§ãƒ³ `1` ã‚’むンストヌルする必芁がありたす
+
+<div class="termy">
+
+```console
+$ pip install "harry==1"
+```
+
+</div>
+
+これにより、`harry` ïŒˆãƒãƒªãƒŒïŒ‰ãƒãƒŒã‚žãƒ§ãƒ³1がグロヌバルなPython環境にむンストヌルされたす。
+
+```mermaid
+flowchart LR
+    subgraph global[global env]
+        harry-1[harry v1]
+    end
+    subgraph stone-project[philosophers-stone project]
+        stone(philosophers-stone) -->|requires| harry-1
+    end
+```
+
+しかし、 `prisoner-of-azkaban` ïŒˆã‚¢ã‚ºã‚«ãƒãƒ³ã®å›šäººïŒ‰ã‚’実行したい堎合は、`harry` ïŒˆãƒãƒªãƒŒïŒ‰ã®ãƒãƒŒã‚žãƒ§ãƒ³ `1` ã‚’アンむンストヌルし、`harry` ïŒˆãƒãƒªãƒŒïŒ‰ã®ãƒãƒŒã‚žãƒ§ãƒ³ `3` ã‚’むンストヌルし盎す必芁がありたす。あるいは、単に`harry` ïŒˆãƒãƒªãƒŒïŒ‰ã®ãƒãƒŒã‚žãƒ§ãƒ³ `3` ã‚’むンストヌルするこずで、自動的にバヌゞョン `1` ãŒã‚¢ãƒ³ã‚€ãƒ³ã‚¹ãƒˆãƒŒãƒ«ã•れたす
+
+<div class="termy">
+
+```console
+$ pip install "harry==3"
+```
+
+</div>
+
+このようにしお、グロヌバル環境ぞの `harry` ïŒˆãƒãƒªãƒŒïŒ‰ã®ãƒãƒŒã‚žãƒ§ãƒ³ `3` ã®ã‚€ãƒ³ã‚¹ãƒˆãƒŒãƒ«ãŒå®Œäº†ã—たす。
+
+それから、 `philosophers-stone` ïŒˆè³¢è€…の石を再び実行しようずするず、このプログラムは `harry` ïŒˆãƒãƒªãƒŒïŒ‰ã®ãƒãƒŒã‚žãƒ§ãƒ³ `1` ãŒå¿…芁なため、**動䜜しなくなる**可胜性がありたす。
+
+```mermaid
+flowchart LR
+    subgraph global[global env]
+        harry-1[<strike>harry v1</strike>]
+        style harry-1 fill:#ccc,stroke-dasharray: 5 5
+        harry-3[harry v3]
+    end
+    subgraph stone-project[philosophers-stone project]
+        stone(philosophers-stone) -.-x|⛔| harry-1
+    end
+    subgraph azkaban-project[prisoner-of-azkaban project]
+        azkaban(prisoner-of-azkaban) --> |requires| harry-3
+    end
+```
+
+/// tip | è±†çŸ¥è­˜
+
+Pythonのパッケヌゞでは、**新しいバヌゞョン**で**互換性を損なう倉曎を避ける**よう努めるのが䞀般的ですが、それでも泚意が必芁です。すべおが正垞に動䜜するこずをテストで確認しおから、意図的に指定しお新しいバヌゞョンをむンストヌルするのが良いでしょう。
+
+///
+
+あなたのすべおの**プロゞェクトが䟝存しおいる**、**倚数の**他の**パッケヌゞ**が䞊蚘の問題を抱えおいるず想像しおください。これは管理が非垞に困難です。そしお、**互換性のないバヌゞョン**のパッケヌゞを䜿っおプロゞェクトを実行し、なぜ動䜜しないのか分からなくなるでしょう。
+
+たた、䜿甚しおいるOSLinux、Windows、macOS ãªã©ïŒ‰ã«ã‚ˆã£ãŠã¯ã€Pythonがすでにむンストヌルされおいるこずがありたす。この堎合、特定のバヌゞョンのパッケヌゞが**OSの動䜜に必芁である**こずがありたす。グロヌバル環境にパッケヌゞをむンストヌルするず、OSに付属するプログラムを**壊しおしたう**可胜性がありたす。
+
+## ãƒ‘ッケヌゞのむンストヌル先
+
+Pythonをむンストヌルしたずき、ファむルを含んだいく぀かのディレクトリが䜜成されたす。
+
+これらの䞭には、むンストヌルされたパッケヌゞを保存するためのものもありたす。
+
+以䞋のコマンドを実行したずき
+
+<div class="termy">
+
+```console
+// Don't run this now, it's just an example ðŸ€“
+$ pip install "fastapi[standard]"
+---> 100%
+```
+
+</div>
+
+FastAPIのコヌドを含む圧瞮ファむルが、通垞は [PyPI](https://pypi.org/project/fastapi/) ã‹ã‚‰ãƒ€ã‚Šãƒ³ãƒ­ãƒŒãƒ‰ã•れたす。
+
+たた、FastAPIが䟝存する他のパッケヌゞも**ダりンロヌド**されたす。
+
+それから、これらのファむルは**解凍**され、コンピュヌタのあるディレクトリに配眮されたす。
+
+デフォルトでは、これらのファむルはPythonのむンストヌル時に䜜成されるディレクトリ、぀たり**グロヌバル環境**に配眮されたす。
+
+## ä»®æƒ³ç’°å¢ƒãšã¯
+
+すべおのパッケヌゞをグロヌバル環境に配眮するこずによっお生じる問題の解決策は、䜜業する**プロゞェクトごずの仮想環境**を䜿甚するこずです。
+
+仮想環境は**ディレクトリ**であり、グロヌバル環境ず非垞に䌌おいお、䞀぀のプロゞェクトで䜿う特定のパッケヌゞ矀をむンストヌルできる堎所です。
+
+このようにしお、それぞれのプロゞェクトが独自の仮想環境`.venv` ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªïŒ‰ã«ç‹¬è‡ªã®ãƒ‘ッケヌゞ矀を持぀こずができたす。
+
+```mermaid
+flowchart TB
+    subgraph stone-project[philosophers-stone project]
+        stone(philosophers-stone) --->|requires| harry-1
+        subgraph venv1[.venv]
+            harry-1[harry v1]
+        end
+    end
+    subgraph azkaban-project[prisoner-of-azkaban project]
+        azkaban(prisoner-of-azkaban) --->|requires| harry-3
+        subgraph venv2[.venv]
+            harry-3[harry v3]
+        end
+    end
+    stone-project ~~~ azkaban-project
+```
+
+## ä»®æƒ³ç’°å¢ƒã®æœ‰åŠ¹åŒ–ãšã¯
+
+仮想環境を有効にしたずき、䟋えば次のコマンドを実行した堎合を考えたす
+
+//// tab | Linux, macOS
+
+<div class="termy">
+
+```console
+$ source .venv/bin/activate
+```
+
+</div>
+
+////
+
+//// tab | Windows PowerShell
+
+<div class="termy">
+
+```console
+$ .venv\Scripts\Activate.ps1
+```
+
+</div>
+
+////
+
+//// tab | Windows Bash
+
+あるいは、WindowsでBashを䜿甚しおいる堎合 (<a href="https://gitforwindows.org/" class="external-link" target="_blank">Git Bash</a>など):
+
+<div class="termy">
+
+```console
+$ source .venv/Scripts/activate
+```
+
+</div>
+
+////
+
+これによっお、いく぀かの [環境倉数](environment-variables.md){.internal-link target=_blank} ãŒäœœæˆãƒ»ä¿®æ­£ã•れ、次に実行されるコマンドで䜿甚できるようになりたす。
+
+これらの環境倉数のひず぀に、 `PATH` å€‰æ•°ãŒã‚りたす。
+
+/// tip | è±†çŸ¥è­˜
+
+`PATH` å€‰æ•°ã«ã€ã„おの詳现は [環境倉数](environment-variables.md#path環境倉数){.internal-link target=_blank} ã‚’参照しおください。
+
+///
+
+仮想環境を有効にするず、その仮想環境のパス `.venv/bin` ïŒˆLinuxずmacOS、あるいは `.venv\Scripts` ïŒˆWindowsが `PATH` å€‰æ•°ã«è¿œåŠ ã•ã‚ŒãŸã™ã€‚
+
+その環境を有効にする前の `PATH` å€‰æ•°ãŒæ¬¡ã®ã‚ˆã†ã«ãªã£ãŠã„るずしたす。
+
+//// tab | Linux, macOS
+
+```plaintext
+/usr/bin:/bin:/usr/sbin:/sbin
+```
+
+これは、OSが以䞋のディレクトリ䞭でプログラムを探すこずを意味したす
+
+* `/usr/bin`
+* `/bin`
+* `/usr/sbin`
+* `/sbin`
+
+////
+
+//// tab | Windows
+
+```plaintext
+C:\Windows\System32
+```
+
+これは、OSが以䞋のディレクトリ䞭でプログラムを探すこずを意味したす
+
+* `C:\Windows\System32`
+
+////
+
+仮想環境を有効にするず、 `PATH` å€‰æ•°ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚ŠãŸã™ã€‚
+
+//// tab | Linux, macOS
+
+```plaintext
+/home/user/code/awesome-project/.venv/bin:/usr/bin:/bin:/usr/sbin:/sbin
+```
+
+これは、OSが他のディレクトリを探すより前に、最初に以䞋のディレクトリ䞭でプログラムを探し始めるこずを意味したす
+
+```plaintext
+/home/user/code/awesome-project/.venv/bin
+```
+
+そのため、タヌミナルで `python` ãšå…¥åŠ›ã—ãŸéš›ã«ã€OSはPythonプログラムを以䞋のパスで発芋し、䜿甚したす。
+
+```plaintext
+/home/user/code/awesome-project/.venv/bin/python
+```
+
+////
+
+//// tab | Windows
+
+```plaintext
+C:\Users\user\code\awesome-project\.venv\Scripts;C:\Windows\System32
+```
+
+これは、OSが他のディレクトリを探すより前に、最初に以䞋のディレクトリ䞭でプログラムを探し始めるこずを意味したす
+
+```plaintext
+C:\Users\user\code\awesome-project\.venv\Scripts
+```
+
+そのため、タヌミナルで `python` ãšå…¥åŠ›ã—ãŸéš›ã«ã€OSはPythonプログラムを以䞋のパスで発芋し、䜿甚したす。
+
+```plaintext
+C:\Users\user\code\awesome-project\.venv\Scripts\python
+```
+
+////
+
+重芁な点は、仮想環境のパスを `PATH` å€‰æ•°ã®**先頭**に配眮するこずです。OSは利甚可胜な他のPythonを芋぀けるより**前に**、この仮想環境のPythonを芋぀けるようになりたす。このようにしお、 `python` ã‚’実行したずきに、他の `python` ïŒˆäŸ‹ãˆã°ã‚°ãƒ­ãƒŒãƒãƒ«ç’°å¢ƒã® `python` ïŒ‰ã§ã¯ãªãã€**その仮想環境の**Pythonを䜿甚するようになりたす。
+
+仮想環境を有効にしお倉曎されるこずは他にもありたすが、これが最も重芁な倉曎のひず぀です。
+
+## ä»®æƒ³ç’°å¢ƒã®ç¢ºèª
+
+仮想環境が有効かどうか、䟋えば次のように確認できたす。
+
+//// tab | Linux, macOS, Windows Bash
+
+<div class="termy">
+
+```console
+$ which python
+
+/home/user/code/awesome-project/.venv/bin/python
+```
+
+</div>
+
+////
+
+//// tab | Windows PowerShell
+
+<div class="termy">
+
+```console
+$ Get-Command python
+
+C:\Users\user\code\awesome-project\.venv\Scripts\python
+```
+
+</div>
+
+////
+
+これは、䜿甚される `python` ãƒ—ログラムが**その仮想環境の**ものであるこずを意味したす。
+
+LinuxやmacOSでは `which` ã‚’、Windows PowerShellでは `Get-Command` ã‚’䜿甚したす。
+
+このコマンドの動䜜は、 `PATH`倉数に蚭定された**それぞれのパスを順に**確認しおいき、呌ばれおいる `python` ãƒ—ログラムを探したす。そしお、芋぀かり次第そのプログラムぞの**パスを衚瀺したす**。
+
+最も重芁なこずは、 `python` ãŒå‘Œã°ã‚ŒãŸãšãã«ã€ãŸã•にこのコマンドで確認した "`python`" ãŒå®Ÿè¡Œã•れるこずです。
+
+こうしお、自分が想定通りの仮想環境にいるかを確認できたす。
+
+/// tip | è±†çŸ¥è­˜
+
+ある仮想環境を有効にし、そのPythonを䜿甚したたた**他のプロゞェクトに移動しお**したうこずは簡単に起こり埗たす。
+
+そしお、その第二のプロゞェクトは動䜜しないでしょう。なぜなら別のプロゞェクトの仮想環境の**誀ったPython**を䜿甚しおいるからです。
+
+そのため、どの `python` ãŒäœ¿ç”šã•れおいるのか確認できるこずは圹立ちたす。🀓
+
+///
+
+## ãªãœä»®æƒ³ç’°å¢ƒã‚’無効化するのか
+
+䟋えば、`philosophers-stone` ïŒˆè³¢è€…の石ずいうプロゞェクトで䜜業をしおいお、**その仮想環境を有効にし**、必芁なパッケヌゞをむンストヌルしおその環境内で䜜業を進めおいるずしたす。
+
+それから、**別のプロゞェクト**、 `prisoner-of-azkaban` ïŒˆã‚¢ã‚ºã‚«ãƒãƒ³ã®å›šäººïŒ‰ã«å–り掛かろうずしたす。
+
+そのプロゞェクトディレクトリぞ移動したす
+
+<div class="termy">
+
+```console
+$ cd ~/code/prisoner-of-azkaban
+```
+
+</div>
+
+もし `philosophers-stone` ïŒˆè³¢è€…の石の仮想環境を無効化しおいないず、`python` ã‚’実行したずき、 ã‚¿ãƒŒãƒŸãƒŠãƒ«ã¯ `philosophers-stone` ïŒˆè³¢è€…の石のPythonを䜿甚しようずしたす。
+
+<div class="termy">
+
+```console
+$ cd ~/code/prisoner-of-azkaban
+
+$ python main.py
+
+// Error importing sirius, it's not installed ðŸ˜±
+Traceback (most recent call last):
+    File "main.py", line 1, in <module>
+        import sirius
+```
+
+</div>
+
+しかし、その仮想環境を無効化し、 `prisoner-of-azkaban` ïŒˆã‚¢ã‚ºã‚«ãƒãƒ³ã®å›šäººïŒ‰ã®ãŸã‚ã®æ–°ã—い仮想環境を有効にすれば、 `python` ã‚’実行したずきに `prisoner-of-azkaban` ïŒˆã‚¢ã‚ºã‚«ãƒãƒ³ã®å›šäººïŒ‰ã®ä»®æƒ³ç’°å¢ƒã® Python ãŒäœ¿ç”šã•れるようになりたす。
+
+<div class="termy">
+
+```console
+$ cd ~/code/prisoner-of-azkaban
+
+// You don't need to be in the old directory to deactivate, you can do it wherever you are, even after going to the other project ðŸ˜Ž
+$ deactivate
+
+// Activate the virtual environment in prisoner-of-azkaban/.venv ðŸš€
+$ source .venv/bin/activate
+
+// Now when you run python, it will find the package sirius installed in this virtual environment âœš
+$ python main.py
+
+I solemnly swear ðŸº
+```
+
+</div>
+
+## ä»£æ›¿æ‰‹æ®µ
+
+これは、あらゆる仕組みを**根本から**孊ぶためのシンプルな入門ガむドです。
+
+仮想環境、パッケヌゞの䟝存関係requirements、プロゞェクトの管理には、倚くの**代替手段**がありたす。
+
+準備が敎い、パッケヌゞの䟝存関係、仮想環境など**プロゞェクト党䜓の管理**ツヌルを䜿いたいず考えたら、<a href="https://github.com/astral-sh/uv" class="external-link" target="_blank">uv</a> ã‚’詊しおみるこずをおすすめしたす。
+
+`uv` ã§ã¯ä»¥äž‹ã®ã‚ˆã†ãªå€šãã®ã“ずができたす
+
+* ç•°ãªã‚‹ãƒãƒŒã‚žãƒ§ãƒ³ã‚‚含めた**Python ã®ã‚€ãƒ³ã‚¹ãƒˆãƒŒãƒ«**
+* ãƒ—ロゞェクトごずの**仮想環境**の管理
+* **パッケヌゞ**のむンストヌル
+* ãƒ—ロゞェクトのパッケヌゞの**䟝存関係やバヌゞョン**の管理
+* ãƒ‘ッケヌゞずそのバヌゞョンの、䟝存関係を含めた**厳密な**組み合わせを保持し、これによっお、本番環境で、開発環境ず党く同じようにプロゞェクトを実行できるこれは**locking**ず呌ばれたす
+* ãã®ä»–のさたざたな機胜
+
+## ãŸãšã‚
+
+ここたで読みすべお理解したなら、䞖間の倚くの開発者ず比べお、仮想環境に぀いお**あなたはより倚くのこずを知っおいたす**。🀓
+
+これらの詳现を知るこずは、将来、耇雑に芋える䜕かのデバッグにきっず圹立぀でしょう。しかし、その頃には、あなたは**そのすべおの動䜜を根本から**理解しおいるでしょう。😎