pythonにおける venvについて教えていただきたいのですが、
複数のvenvを作成したときに
あるvenvでは python2でコードを実行させる、
別の venvでは 最新のpythonで実行させる、
といった使い方もできるのでしょうか?
↓
はい、Python の `venv` を使えば、
異なる Python バージョンを使う仮想環境を作成できます。
## **異なる Python バージョンの `venv` の作成方法**
`venv` は基本的にシステムのデフォルトの Python バージョンを使いますが、
**異なるバージョンを指定**して仮想環境を作成することも可能です。
### **1. Python 2 を使う venv を作成する**
Python 2 の `venv` は
`virtualenv` という別のツールを使う必要があります。
Python 2.7 は `venv` が標準搭載されていないためです。
#### **(1) `virtualenv` をインストール**
Python 2 で `virtualenv` をインストールします。
```bash
pip install virtualenv
```
#### **(2) Python 2 用の仮想環境を作成**
```bash
virtualenv -p /usr/bin/python2 venv_py2
```
または(Windows の場合):
```powershell
virtualenv -p C:\Path\To\Python27\python.exe venv_py2
```
これで `venv_py2` というフォルダに Python 2 の仮想環境が作成されます。
#### **(3) 仮想環境を有効化**
- **Mac/Linux**
```bash
source venv_py2/bin/activate
```
- **Windows**
```powershell
venv_py2\Scripts\activate
```
有効化すると `(venv_py2)` というプレフィックスが表示され、
その状態で `python` を実行すると Python 2 が起動します。
---
### **2. 最新の Python 用の venv を作成**
Python 3.9 や Python 3.10 などの最新バージョンを指定して
`venv` を作成できます。
#### **(1) Python のパスを確認**
どの Python バージョンを使いたいか確認します。
```bash
which python3.10 # Mac/Linux
where python3.10 # Windows
```
Python 3.10 が `/usr/bin/python3.10` にあると仮定します。
#### **(2) 最新の Python で仮想環境を作成**
```bash
python3.10 -m venv venv_py3
```
Windows の場合:
```powershell
C:\Path\To\Python310\python.exe -m venv venv_py3
```
#### **(3) 仮想環境を有効化**
- **Mac/Linux**
```bash
source venv_py3/bin/activate
```
- **Windows**
```powershell
venv_py3\Scripts\activate
```
これで `venv_py3` では Python 3.10 を使えます。
---
## **仮想環境の切り替え**
- Python 2 用の環境を使いたいとき
```bash
source venv_py2/bin/activate
```
- 最新の Python 用の環境を使いたいとき
```bash
source venv_py3/bin/activate
```
- 仮想環境を抜ける(共通)
```bash
deactivate
```
---
## **補足**
- `venv` は `virtualenv` より標準的ですが、
Python 2 では `virtualenv` を使う必要があります。
- `pyenv` というツールを使えば、
複数の Python バージョンを管理しながら
`venv` を作るのが楽になります。
---
これで、Python 2 と最新の Python の両方を
`venv` で管理し、使い分けることができます!
コメント
コメントを投稿