0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu 20.04でPython環境(と機械学習環境)を構築する

Posted at

初めに

冗長になってきたが,慣れるまで繰り返す.慣れても時間が経つと忘れるので,その対策でもある.

参考:

状況確認

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:        20.04
Codename:       focal

$ python -V

Command 'python' not found, did you mean:

  command 'python3' from deb python3
  command 'python' from deb python-is-python3

$ python3 -V
Python 3.8.10

pyenvの導入

以前と同じく,git経由でインストールする.

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ cd ~/.pyenv && src/configure && make -C src

環境設定を行う.

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc

続いて,

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
$ echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
$ echo 'eval "$(pyenv init - bash)"' >> ~/.profile

今回は問題無く進んだ(以前,トラブルに見舞われたのが何故か分からない).

最後にシェルを再起動して,pyenvを呼び出すことができることを確認した.

$ exec $SHELL

$ pyenv
pyenv 2.5.5
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   --version   Display the version of pyenv
   commands    List all available pyenv commands
   exec        Run an executable with the selected Python version
   ...

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme

pyenvへpythonをインストール

dependenciesを用意しておく.

$ sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl git \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

3.8.10をインストールする.

$ pyenv install 3.8.10
Downloading Python-3.8.10.tar.xz...
-> https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tar.xz
Installing Python-3.8.10...
patching file Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst
patching file configure
patching file configure.ac
Installed Python-3.8.10 to /home/user_name/.pyenv/versions/3.8.10

確認する.

$ pyenv versions
* system (set by /home/user_name/.pyenv/version)
  3.8.10

続いて,3.10.10, 3.12.10もインストールし,

$ pyenv install 3.10.10
Downloading Python-3.10.10.tar.xz...
-> https://www.python.org/ftp/python/3.10.10/Python-3.10.10.tar.xz
Installing Python-3.10.10...
Installed Python-3.10.10 to /home/user_name/.pyenv/versions/3.10.10

$ pyenv install 3.12.10
Downloading Python-3.12.10.tar.xz...
-> https://www.python.org/ftp/python/3.12.10/Python-3.12.10.tar.xz
Installing Python-3.12.10...
Installed Python-3.12.10 to /home/user_name/.pyenv/versions/3.12.10

グローバルを3.12.10に固定する.

$ pyenv versions
* system (set by /home/user_name/.pyenv/version)
  3.8.10
  3.10.10
  3.12.10

$ python -V
pyenv: python: command not found

The `python' command exists in these Python versions:
  3.8.10
  3.10.10
  3.12.10

Note: See 'pyenv help global' for tips on allowing both
      python2 and python3 to be found.

$ python3 -V
Python 3.8.10

$ pyenv global 3.12.10

$ pyenv versions
  system
  3.8.10
  3.10.10
* 3.12.10 (set by /home/user_name/.pyenv/version)

$ python -V
Python 3.12.10

venvによる仮想環境構築

3.3以降のpythonには,venvが付いている.

/00_test$ python -m venv .venv_test
/00_test$ source .venv_test/bin/activate
(.venv_test)/00_test$ pip install numpy scipy pandas matplotlib

機械学習環境の構築

相変わらず,気を遣う.

情報の取得

NVIDIA GPU driver

$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  535.183.01  Sun May 12 19:39:15 UTC 2024
GCC version:  gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) 

より,NVIDIA GPU driver=535.183.01cat /sys/module/nvidia/versionも同様).

CUDA toolkit

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Jun_13_19:16:58_PDT_2023
Cuda compilation tools, release 12.2, V12.2.91
Build cuda_12.2.r12.2/compiler.32965470_0

より,CUDA toolkit=12.2(今回は,cat /usr/local/cuda/version.jsonもあり,同様).

cuDNN
インストールされていなかったので,ここからインストールした.

$ cat /usr/include/x86_64-linux-gnu/cudnn_v*.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 9
#define CUDNN_MINOR 8
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 10000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

/* cannot use constexpr here since this is a C-only file */

以前とは違う場所であったが,9.8.0

tf

以上を整え,

/01_tf$ python -m venv .venv_tf
/01_tf$ source .venv_tf/bin/activate
(.venv_tf)/01_tf$ pip install --upgrade pip
(.venv_tf)/01_tf$ pip install tensorflow[and-cuda]

を行うと,

(.venv_tf)/01_tf$ python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

tf.Tensorを,

(.venv_tf)/01_tf$ python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

がlist of GPUsを返すので,良いだろう.

torch

あと少しである.

/02_torch$ python -m venv .venv_torch
/02_torch$ source  .venv_torch/bin/activate
(.venv_torch)/02_torch$ pip install --upgrade pip
(.venv_torch)/02_torch$ pip install torch torchvision torchaudio

を終え,

(.venv_torch)/02_torch$ python
Python 3.12.10 (main, Apr 13 2025, 14:54:15) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'2.6.0+cu124'

>>> x = torch.rand(5, 3)
>>> print(x)
tensor([[0.9414, 0.8425, 0.3497],
        [0.7794, 0.9285, 0.6651],
        [0.1550, 0.2662, 0.8811],
        [0.0167, 0.9312, 0.3614],
        [0.5002, 0.3822, 0.8820]])

>>> torch.cuda.is_available()
True

より,成功

終わりに

無事,終わった.

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?