【深度学习】深度学习之巅:在 centos 7 上打造完美python 3.10 与 pytorch 2.3.0 环境
引言 🍎
前言🍐
安装场景🌈
centos7
操作系统
- 容器内的
centos7
操作系统
- 使用
dockerfile
+requirements.txt
安装
在虚拟机、服务器安装🗽
一、升级openssl🍉
- 下载必要的依赖包,使用root权限:
sudo yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel
- 进入到
opt
目录,到openssl
官方网站下载源码,解压并进入软件包目录:
cd /opt
sudo wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz --no-check-certificate
sudo tar -zxvf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q
- 编译安装
sudo ./config prefix=/usr/local/openss1
上面的报错可以直接用: sudo ./config
sudo make && sudo make install
- 配置lib库:
echo "/usr/local/lib64/" | sudo tee -a /etc/ld.so.conf
sudo ldconfig
- 备份旧版本
openssl
:
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
- 将新版本软链接
/usr/bin/
sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
- 检查
openssl version
openssl version
二、安装python3.10🍈
- 安装依赖,使用root权限
sudo yum install -y ncurses-devel gdbm-devel xz-devel sqlite-devel tk-devel uuid-devel readline-devel bzip2-devel libffi-devel
- 进入目录下载
python3.10.6
并解压
cd /opt
sudo wget https://www.python.org/ftp/python/3.10.6/python-3.10.6.tgz
sudo tar -zxvf python-3.10.6.tgz
- 编译安装
cd python-3.10.6
sudo ./configure --prefix=/usr/local/python3
sudo make && sudo make install
- 创建软链接,centos默认安装有python2.7版本,本文两个版本共存:
sudo ln -s /usr/local/python3/bin/python3.10 /usr/bin/python3
sudo ln -s /usr/local/python3/bin/pip3.10 /usr/bin/pip3
- 验证安装是否成功
python3
三、 验证pip3 install 是否成功🍅
pip3 install numpy
pip3 install numpy
安装成功如下:
在docker内部安装🏭
- 容器内的
centos7
操作系统
注意:在容器内安装centos7
用上面的教程前,要先装一下openssl
安装命令如下:
yum install openssl
之后,按照上面的教程一步步走即可安装成功。
安装后,如果需要将容器打包成镜像,则用如下命令:
docker commit 容器id 打包后的镜像名:版本号
之后,再用如下命令:
- 方式一
运行容器后正常启动状态,使用如下命令。
docker run -itd --entrypoint /bin/bash reqpython
//先在后台启动 reqpython为刚才打包的镜像名
docker ps //查看刚才run的容器名 如:test
docker exec -it test /bin/bash //再进入容器内部
- 方式二
只是做测试用,测试完后,不想保留容器,使用如下命令:
docker run -it --rm --entrypoint /bin/bash reqpython // --rm退出即删除容器
使用dockerfile安装🚀
- 使用
dockerfile
+requirements.txt
安装
dockerfile
文件内容如下:
# 使用基础镜像 centos 7
from centos:7
# 安装openssl
run yum install -y openssl
# 安装必要的依赖
run yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel \
ncurses-devel gdbm-devel xz-devel sqlite-devel tk-devel uuid-devel readline-devel \
bzip2-devel libffi-devel wget tar sudo
# 升级 openssl
workdir /opt
run wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz --no-check-certificate && \
tar -zxvf openssl-1.1.1q.tar.gz && \
cd openssl-1.1.1q && \
./config prefix=/usr/local/openssl && \
make && make install && \
echo "/usr/local/lib64/" | tee -a /etc/ld.so.conf && \
ldconfig && \
mv /usr/bin/openssl /usr/bin/openssl.bak && \
ln -s /usr/local/bin/openssl /usr/bin/openssl
# 安装 python 3.10
workdir /opt
run wget https://www.python.org/ftp/python/3.10.6/python-3.10.6.tgz && \
tar -zxvf python-3.10.6.tgz && \
cd python-3.10.6 && \
./configure --prefix=/usr/local/python3 && \
make && make install && \
ln -s /usr/local/python3/bin/python3.10 /usr/bin/python3 && \
ln -s /usr/local/python3/bin/pip3.10 /usr/bin/pip3
# 将requirements.txt文件复制到容器中
copy requirements.txt /opt/requirements.txt
# 安装 python 依赖包
run pip3 install -r /opt/requirements.txt
requirements.txt
文件如下:
numpy==1.26.4
torch_geometric==2.5.3
torch==2.3.0
torchvision==0.18.0
torchaudio==2.3.0
注意: 保证requirements.txt
文件和dockerfile
文件在同一个文件夹下
然后,使用如下命令打包镜像
docker build -t reqpython . // reqpython是你给打包镜像起的名字
最后,使用如下命令进入到容器内部:
- 方式一
运行容器后正常启动状态,使用如下命令。
docker run -itd --entrypoint /bin/bash reqpython //先在后台启动
docker ps //查看刚才run的容器名 如:test
docker exec -it test /bin/bash //再进入容器内部
- 方式二
只是做测试用,测试完后,不想保留容器,使用如下命令:
docker run -it --rm --entrypoint /bin/bash reqpython //先在后台启动
运行结果如下:
运行文件✈️
命令如下:
docker cp /local/path/directory container_name:/path/to/directory
参考文章🚊
博主写得很好,博客简洁高效
https://zhuanlan.zhihu.com/p/661077162
结语🌅
往期好文💕
保姆级教程
【保姆级教程】windows11下go-zero的etcd安装与初步使用
【保姆级教程】windows11安装go-zero代码生成工具goctl、protoc、go-zero
【go-zero】手把手带你在goland中创建api文件并设置高亮
报错解决
【go-zero】error: user.api 27:9 syntax error: expected ‘:‘ | ‘ident‘ | ‘int‘, got ‘(‘ 报错解决方案及api路由注意事项
【go-zero】error: only one service expected goctl一键转换生成rpc服务错误解决方案
【go-zero】【error】 failed to initialize database, got error error 1045 (28000):报错解决方案
【go-zero】error 1045 (28000): access denied for user ‘root‘@‘localhost‘ (using password: yes)报错解决方案
【go-zero】type mismatch for field “auth.accesssecret“, expect “string“, actual “number“报错解决方案
【go-zero】error: user.api 30:2 syntax error: expected ‘)‘ | ‘key‘, got ‘ident‘报错解决方案
【go-zero】windows启动rpc服务报错panic:context deadline exceeded解决方案
发表评论