paddlenlp centos7镜像从0开始搭建

1 pull centos7基础镜像

docker pull centos:centos7

2 安装python3.8.6

python3.6不行!
后续安装seqeval-1.2.2.tar.gz 包的时候会报错(安装paddlenlp时候需要此包),查了一下,发现需要python3.7及以上才可,看到paddlepaddle官方镜像中安装的python3.8.6,故也安装此版本。

1.1下载安装包:

cd /tmp
wget http://cdn.npm.taobao.org/dist/python/3.8.6/Python-3.8.6.tgz

说明:这句话的作用主要是用wget软件(初学者请自行了解次软件,以后会经常用到)从一个指定的URL下载文件。格式为:
wget 空格 URL地址。而下载目录就是当前目录,所以需要cd到你需要放置下载文件的地方。

如果镜像中没有安装wget又不想装,可以访问http://cdn.npm.taobao.org/dist/python/3.8.6/Python-3.8.6.tgz将tar包下载到本地,再通过

docker cp 本地路径/Python-3.8.6.tgz container_id:容器中路径

复制到容器中

1.2 解压安装包

tar -zxvf Python-3.8.6.tgz 
说明:tar是Linux系统的解压命令,这句话是把文件解压到文件所在的文件夹。
如果是土星话操作界面可以向在WIN上一样解压文件。
同样也可以像在win上一样下载Python源文件放置在指定文件夹。

1.3 安装编译Python3源文件所需的编译环境

yum install -y gcc  
yum install -y zlib*
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel  
yum -y install automake autoconf libtool make
说明:这里功能很简单,要说的是yum命令。
虽然linux也可以像win上一样在指定的软件的官网下载软件,
但是有一些常用且公用的软件会被放置在特定的远程仓库里面,可以通过使用yum命令来安装。
而且yum命令还可以主动帮用户解决软件的依赖问题。
所以想要学好linux的话了解一下yum也是必须的。此外还有anaconda也是类似的软件。

执行 whereis make 命令可以验证是否安装成功,如果有路径则表示安装成功。

1.4 安装

进入Python3 源文件文件夹:

cd Python-3.8.6/

指定安装目录:

./configure --prefix=/usr/local/python3 --with-ssl
说明:不要忘记最前面的“.”

编译源文件:

make

正式安装:

make install 

建立软链接:

ln -s /usr/local/python3/bin/python3 /usr/bin/python3 
 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 
说明:

  很多教程都有最后一步,但是很少有网站会告诉你为什么会有最后一步。
  所谓软连接就相当于win下的快捷方式。你可以通过快捷方式打开你想要使用的软件。
  但是为什么要把快捷方式放在/usr/bin/呢。这就涉及到环境变量的问题了,
  你当然可以不使用最后的软连接而直接把/usr/local/python3/bin加到环境变量里面,
  那随你喜好。但是在这里/usr/bin/是默认已经在环境变量里面的,
  把快捷方式放到这个文件夹相当于间接的把该Python3加入环境变量,
  这样你才可以直接在终端输入“python3”打开Python。

3 安装paddlepaddle == 2.3.2

python3 -m pip install paddlepaddle==2.3.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

ps:这个源速度一般,可以找找速度更快的源
比如:https://mirror.baidu.com/pypi/simple
paddlepaddle有点大的,需要一些时间。。。

但是后来import paddle报错:
ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.8’ not found (required by /usr/local/python3/lib/python3.8/site-packages/paddle/fluid/core_avx.so)
参考 https://blog.csdn.net/liuliangcan/article/details/125388222 解决了:
问题定位:
搜到是/lib64/libstdc++.so.6这个库版本过低
解决方法:
最终上网直接找到这个so,https://wwa.lanzoui.com/i8lnene。
下下来之后放到/usr/lib64/.
删除原先的软连接,建立新的软连接

magi_system]# rm /usr/lib64/libstdc++.so.6
rm: remove symbolic link ‘/usr/lib64/libstdc++.so.6’? y
[root@bi-server-1 magi_system]# ln -s /usr/lib64/libstdc++.so.6.0.26 /usr/lib64/libstdc++.so.6
[root@bi-server-1 magi_system]# sudo strings /lib64/libstdc++.so.6 | grep 'CXXABI'

4 安装paddlenlp >= 2.4

报错:
ModuleNotFoundError: No module named ‘_ctypes’
错误原因:
Python3中有个内置模块叫ctypes,它是Python3的外部函数库模块,它提供兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用CentOS7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。
由于在CentOS7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pip的时候就报了"ModuleNotFoundError: No module named ‘_ctypes’"的错误。
————————————————
版权声明:本文为CSDN博主「wuyepiaoxue789」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wuyepiaoxue789/article/details/117958240
解决方法:
1、执行如下命令:

yum install libffi-devel -y

2、源码安装的python3 重新编译安装

cd /tmp/Python-3.8.6/

./configure --prefix=/usr/local/python3
 
make && make install

继续安装paddlenlp:

python3 -m pip install --upgrade paddlenlp -i https://mirror.baidu.com/pypi/simple

WARNING: The script paddle2onnx is installed in ‘/usr/local/python3/bin’ which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

DEPRECATION: jieba is being installed using the legacy ‘setup.py install’ method, because it does not have a ‘pyproject.toml’ and the ‘wheel’ package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the ‘–use-pep517’ option. Discussion can be found at https://github.com/pypa/pip/issues/8559

WARNING: The script tqdm is installed in ‘/usr/local/python3/bin’ which is not on PATH.

WARNING: The script huggingface-cli is installed in ‘/usr/local/python3/bin’ which is not on PATH.

WARNING: Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

5 安装scikit-learn >= 1.0.2

python3 -m  pip install scikit-learn==1.0.2 -i https://mirror.baidu.com/pypi/simple

6 安装paddleslim==2.2.2

python3 -m pip install paddleslim==2.2.2 -i https://mirror.baidu.com/pypi/simple

7 安装jupyter 方便远程访问

参见:https://blog.csdn.net/k411797905/article/details/126252699

报错:bash:vim:command not found
解决:
https://blog.csdn.net/m0_45426637/article/details/123017730

yum -y install vim*

报错:
bash: jupyter: command not found
解决:
是因为jupyter 安装在 /usr/local/python3/bin 路径下
发现了jupyter位置,把它添加到环境变量再测试

vim /etc/profile
添加如下代码
export PATH=$PATH:/usr/local/python3/bin
退出编辑
source  /etc/profile    //执行配置

报错:
bash: netstat: command not found
解决:
安装这个包:

yum install net-tools -y

8 最后,打镜像,存tar包

docker保存容器为镜像

docker commit [选项] [容器ID或容器名]  [仓库名:标签]

保存镜像为tar包

docker save -o /home/kong/XXXX.tar NAME:label
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值