Xserverでvenvを使用してPythonの仮想環境を作成します。
venvで仮想環境を作成する
pythonのバージョン確認
サーバーにインストールされているpythonのバージョンを サーバーパネル or コマンドで確認します。
[user@hostname ~]$ ls -ltr /usr/bin/python*
-rwxr-xr-x 2 root root 11312 6月 24 2021 /usr/bin/python3.4m
-rwxr-xr-x 2 root root 11312 6月 24 2021 /usr/bin/python3.4
-rwxr-xr-x 1 root root 7144 6月 20 20:37 /usr/bin/python2.7
-rwxr-xr-x 2 root root 11336 6月 20 20:55 /usr/bin/python3.6m
-rwxr-xr-x 2 root root 11336 6月 20 20:55 /usr/bin/python3.6
lrwxrwxrwx 1 root root 9 7月 21 16:52 /usr/bin/python2 -> python2.7
lrwxrwxrwx 1 root root 7 7月 21 16:52 /usr/bin/python -> python2
lrwxrwxrwx 1 root root 9 7月 25 20:29 /usr/bin/python3 -> python3.6
3つのバージョンのpythonがインストールされています。venvは pythonのバージョン3.3以降で標準実装されているため、今回は仮想環境を作成するので python3 を使用します。
※pythonコマンドには2.7が紐付けられているため、仮想環境を作成する場合に使用したならばエラー(/usr/local/bin/python: No module named venv)が発生します。
※シンボリックリンクが貼られているため、python3 でも python3.6 でもどちらのコマンドを使用しても、バージョン3.6のpythonが使用可能です。
venvで仮想環境作成
ルート権限がないため、pipはインストールできません。そのため、pipがインストールされないようにオプション(–without-pip)をつけて、仮想環境を作成します。{仮想環境名}には pyvenv, myenv などの値を指定します。
そして、ファイルを確認すると仮想環境が作成できていることが確認できます。
[user@hostname ~]$ python3 -m venv --without-pip {仮想環境名}
[user@hostname ~]$ ls {仮想環境名}
bin include lib lib64 pyvenv.cfg
–without-pip のオプションを設定しない場合は、コマンド実行すると下記のようなエラーメッセージが表示されれます。
[user@hostname ~]$ python3 -m venv {仮想環境名}
Error: Command '['/home/user/pyvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 2.
仮想環境の有効化
仮想環境を有効化します。有効化するとプロンプトの前に({仮想環境名})が付与されます。
[user@hostname ~]$ source {仮想環境名}/bin/activate
({仮想環境名}) [user@hostname ~]$
有効化が正常であることを確認するために pythonのバージョンを確認します。Python 3.6.8と出力され、仮想環境の作成と有効化ができたことが確認できます。
({仮想環境名}) [user@hostname ~]$ python -V
Python 3.6.8
pipのインストール
ダウンロード
python3.6では最新のget-pip.pyが使用できないため、python3.6で使用可能な インストールファイルをダウンロードします。
[user@hostname ~]$ curl -O https://bootstrap.pypa.io/pip/3.6/get-pip.py
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2108k 100 2108k 0 0 37.0M 0 --:--:-- --:--:-- --:--:-- 37.4M
※最新のget-pip.pyは、python3.7以降のpythonが必要になります。
[user@hostname ~]$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip-3.7.py
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2570k 100 2570k 0 0 75.9M 0 --:--:-- --:--:-- --:--:-- 78.4M
min_version = (3, 7)
インストール
インストールし、現在インストールされているパッケージを確認します。
パッケージが確認できたならば、インストールができれいることが確認できます。
({仮想環境名}) [user@hostname ~]$ python get-pip.py
Collecting pip<22.0
Using cached pip-21.3.1-py3-none-any.whl (1.7 MB)
…
Successfully installed pip-21.3.1
({仮想環境名}) [user@hostname ~]$pip list
Package Version
---------- -------
pip 21.3.1
setuptools 59.6.0
wheel 0.37.1
pipによるインストール確認
pytestをインストールして、パッケージがインストールできるこをを確認します。
({仮想環境名}) [user@hostname ~]$ pip install pytest
Collecting pytest
Using cached pytest-7.0.1-py3-none-any.whl (296 kB)
…
Successfully installed pytest-7.0.1
({仮想環境名}) [user@hostname ~]$ pip list
Package Version
------------------ -------
attrs 22.2.0
importlib-metadata 4.8.3
iniconfig 1.1.1
packaging 21.3
pip 21.3.1
pluggy 1.0.0
py 1.11.0
pyparsing 3.1.1
pytest 7.0.1
setuptools 59.6.0
tomli 1.2.3
typing_extensions 4.1.1
wheel 0.37.1
zipp 3.6.0
仮想環境から出る
仮想環境の無効化
仮想環境を無効化します。プロンプトの前に付与されていた ({仮想環境名}) が表示されなくなります。
({仮想環境名}) [user@hostname ~]$ deactivate
[user@hostname ~]$
コメント