Pythonの仮想環境(ubuntu 20.4)
Pythonの仮想環境について、まとめてみた。
環境
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal
$ python3 --version
Python 3.8.10
$ python2 --version
Python 2.7.18
以下をプロジェクト・ディレクトリとした。
$ mkdir ~/study/python/sample
$ cd ~/study/python/sample
仮想環境の作成
$ python3 -m venv venv
$ tree -L 3 ./
└── venv
├── bin
│ ├── Activate.ps1
│ ├── activate
│ ├── activate.csh
│ ├── activate.fish
│ ├── easy_install
│ ├── easy_install-3.8
│ ├── pip
│ ├── pip3
│ ├── pip3.8
│ ├── python -> python3
│ └── python3 -> /usr/bin/python3
├── include
├── lib
│ └── python3.8
├── lib64 -> lib
├── pyvenv.cfg
└── share
└── python-wheels
tree表示を -L 3 でしているが、-L 4 だとすごい数になる。 そうとうな量の pythonコードがこの venv ディレクトリには 格納されている。
仮想環境の有効化
bin/ ディレクトリの中のコマンドを使う。 OSによって、有効化のために使うコマンドが違う。
PowerShell用
bash用
csh用
fish用
Activate.ps1
activate
activate.csh
activate.fish
ubuntu だと、bin/activate になる。
$ source venv/bin/activate
(venv) se-ichi@se-ichi-iMac:~/study/python/sample
$
(注)
Windows環境だと、venv/Scripts/ というフォルダが作成される。
また、仮想環境を有効化するコマンドは、
コマンドプロンプト .\venv\Scripts\activate.bat
PowerShell> .\venv\Scripts\activate.ps1
となる。
ただし、PowerShellでコマンドを実行できるように、以下の設定を実行しなくてはならない。
PowerShellを管理者権限で開いたのち、次のコマンドを実行する。これは、一度実行すれば、もうやらなくてよい。
PS > PowerShell Set-ExecutionPolicy RemoteSigned
ライブラリのインストール
numpy をインストールしてみる
$ python3 -m pip install numpy
Collecting numpy
Downloading numpy-1.23.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.1 MB)
|█████████████▏ | 7.0 MB 8.1 MB/s eta 0:00:0
...
|████████████████████████████████| 17.1 MB 12.5 MB/s
Installing collected packages: numpy
Successfully installed numpy-1.23.2
インストールされたのを確認する。
$ python3 -m pip list
Package Version
------------- -------
numpy 1.23.2
pip 20.0.2
pkg-resources 0.0.0
setuptools 44.0.0
仮想環境のリストを作成し、他のプロジェクトで使う。
venv/ の中にインストールされたライブラリが格納される。 このディレクトリは容量が大きいので、コピーするのはやめたほうがいい。
そこで、ここにインストールされたライブラリのリストを作成し、 それを別プロジェクトにコピーすればよい。
コマンドはこれ。
$ python3 -m pip freeze > requirements.txt
実際の作業
(venv) :~/study/python/sample
$ python3 -m pip freeze > requirements.txt
$ cat requirements.txt
numpy==1.23.2
他のプロジェクトで使う
このコマンドで ライブラリの取得ができる。
$ python3 -m pip install -r requirements.txt
以下は、実際の作業の流れである。
$ mkdir ~/study/python/sample2
$ cd ~/study/python/sample2
$ python3 -m venv venv
$ source venv/bin/activate
(venv): ~/study/python/sample2
$ cp ../sample/requirements.txt .
(venv): ~/study/python/sample2
$ python3 -m pip install -r requirements.txt
Collecting numpy==1.23.2
Using cached numpy-1.23.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.1 MB)
Installing collected packages: numpy
Successfully installed numpy-1.23.2
仮想環境を無効化する。
(venv): ~/study/python/sample
$ deactivate
仮想環境の削除
$ rm -rf venv
カテゴリー: memo, Python
タグ: venv, 仮想環境
カウント: 195