安装步骤(Ubuntu 22.04)
检查系统时间
- 执行如下命令,查询系统时间。
date
回显类似如下信息:Mon Dec 5 03:20:03 CST 2022
- 若与当前时间一致,跳过该步骤。若与当前时间不一致,执行如下命令设置(以下时间仅为示例,请用户根据当前时间为准)。
date -s '2022-12-06 14:30:00' hwclock -w
回显如下信息表示设置成功。
Tue Dec 6 14:30:00 CST 2022
安装依赖
- 以root用户登录服务器,检查系统是否安装Python依赖以及gcc等软件。分别使用如下命令检查是否安装gcc,make以及Python依赖软件等。
gcc --version g++ --version make --version cmake --version dpkg -l zlib1g| grep zlib1g| grep ii dpkg -l zlib1g-dev| grep zlib1g-dev| grep ii dpkg -l libsqlite3-dev| grep libsqlite3-dev| grep ii dpkg -l openssl| grep openssl| grep ii dpkg -l libssl-dev| grep libssl-dev| grep ii dpkg -l libffi-dev| grep libffi-dev| grep ii dpkg -l libbz2-dev| grep libbz2-dev| grep ii dpkg -l libxslt1-dev| grep libxslt1-dev| grep ii dpkg -l unzip| grep unzip| grep ii dpkg -l pciutils| grep pciutils| grep ii dpkg -l net-tools| grep net-tools| grep ii dpkg -l libblas-dev| grep libblas-dev| grep ii dpkg -l gfortran| grep gfortran| grep ii dpkg -l libblas3| grep libblas3| grep ii dpkg -l libopenblas-dev| grep libopenblas-dev| grep ii
若分别返回如下信息则说明已经安装,进入下一步(以下回显仅为示例,请以实际情况为准)。
gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0 g++ (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0 GNU Make 4.3 cmake version 3.22.1 ii zlib1g:arm64 1:1.2.11.dfsg-2ubuntu9 arm64 compression library - runtime ii zlib1g-dev:arm64 1:1.2.11.dfsg-2ubuntu9 arm64 compression library - development ii libsqlite3-dev:arm64 3.37.2-2 arm64 SQLite 3 development files ii openssl 3.0.2-0ubuntu1 arm64 Secure Sockets Layer toolkit - cryptographic utility ii libssl-dev:arm64 3.0.2-0ubuntu1 arm64 Secure Sockets Layer toolkit - development files ii libffi-dev:arm64 3.4.2-4 arm64 Foreign Function Interface library (development files) ii libbz2-dev:amd64 1.0.6-8.1ubuntu0.2 arm64 high-quality block-sorting file compressor library - development ii libxslt1-dev:amd64 1.1.29-5ubuntu0.3 arm64 XSLT 1.0 processing library - development kit ii unzip 6.0-26ubuntu3 arm64 De-archiver for .zip files ii pciutils 1:3.7.0-6 arm64 PCI utilities ii net-tools 1.60+git20181103.0eebece-1ubuntu5 arm64 NET-3 networking toolkit libblas-dev:arm64 3.9.0-1build1 arm64 Basic Linear Algebra Subroutines 3, static library gfortran 4:9.3.0-1ubuntu2 arm64 GNU Fortran 95 compiler libblas3:arm64 3.9.0-1build1 arm64 Basic Linear Algebra Reference implementations, shared library libopenblas-dev:arm64 0.3.8+ds-1ubuntu0.20.04.1 arm64 Optimized BLAS (linear algebra) library (dev, meta)
否则请执行如下安装命令(如果只有部分软件未安装,则如下命令修改为还未安装的软件即可):apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev libbz2-dev libxslt1-dev unzip pciutils net-tools libblas-dev gfortran libblas3 libopenblas-dev
检查系统安装的cmake是否符合版本要求(具体要求请参见依赖列表)。
- 检查系统是否安装满足版本要求的Python开发环境(具体要求请参见依赖列表,此步骤以环境上需要使用Python 3.7.x为例进行说明)。
执行命令python3 --version,如果返回信息满足Python版本要求,则直接进入3。
否则可参考如下命令安装Python(以Python3.7.5为例)。- 安装如下依赖,确保编译安装的Python不会缺少_lzma和_bz2模块,_lzma和_bz2是模型训练时所需的依赖模块。
apt-get install -y liblzma-dev libbz2-dev
_lzma依赖于liblzma-dev软件包;_bz2依赖于libbz2-dev软件包。
- 使用wget下载Python3.7.5源码包,可以下载到安装环境的任意目录,命令为:
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
- 进入下载后的目录,解压源码包,命令为:
tar -zxvf Python-3.7.5.tgz
- 进入解压后的文件夹,执行配置、编译和安装命令:
cd Python-3.7.5 ./configure --prefix=/usr/local/python3.7.5 --enable-loadable-sqlite-extensions --enable-shared make -j make install
参数说明如下:
- “--prefix”:用于指定Python安装路径,用户根据实际情况进行修改。
- “--enable-loadable-sqlite-extensions”:用于加载libsqlite3-dev依赖。
- “--enable-shared”:用于编译出libpython3.7m.so.1.0动态库。
本手册以--prefix=/usr/local/python3.7.5路径为例进行说明。执行配置、编译和安装命令后,安装包在“/usr/local/python3.7.5”路径,libpython3.7m.so.1.0动态库在“/usr/local/python3.7.5/lib/libpython3.7m.so.1.0”路径。
- 设置Python3.7.5环境变量。
# 用于设置Python3.7.5库文件路径 export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH # 如果用户环境存在多个Python3版本,则指定使用Python3.7.5版本 export PATH=/usr/local/python3.7.5/bin:$PATH
- 通过以上export方式设置环境变量,该种方式设置的环境变量只在当前窗口有效。
- 您也可以通过将以上命令写入~/.bashrc文件中,然后执行source ~/.bashrc命令,使上述环境变量永久生效。
如果后续您有使用环境上其他Python版本的需求或者安装Python3.7.5前系统默认Python3版本就为3.7.x,则不建议将以上命令写入到~/.bashrc文件中。
- 执行如下命令查看Python版本。返回相关版本信息,表示安装成功。
python3 -V pip3 -V
- 安装如下依赖,确保编译安装的Python不会缺少_lzma和_bz2模块,_lzma和_bz2是模型训练时所需的依赖模块。
- 安装CANN前请先使用pip3 list命令检查是否安装Python依赖(Python依赖请参见依赖列表)。
- 若已经安装,则请跳过该步骤。
- 若未安装,则执行如下操作安装。
- 请在安装前配置好pip源,具体可参考配置pip源。
- 安装前,建议执行命令pip3 install --upgrade pip进行升级,避免因pip版本过低导致安装失败。
- 执行如下命令安装(如果只有部分软件未安装,则如下命令修改为还未安装的软件即可)。
pip3 install attrs cython numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py
如果执行上述命令时报错“subprocess.CalledProcessError:Command '('lsb_release', '-a')' return non-zero exit status 1”,请参见pip3 install报错“subprocess.CalledProcessError:Command '('lsb_release', '-a')' return non-zero exit status 1”。
依赖安装完成后,请用户恢复为原umask值(参考检查root用户的umask,删除.bashrc文件中umask 0022一行)。基于安全考虑,建议用户将umask值改为0027。