My開発メモ

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, 仮想環境

カウント: 196