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: remove symbolic link ‘/usr/lib64/libstdc++.so.6’? y
[root@bi-server-1 magi_system]
[root@bi-server-1 magi_system]
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