【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境

2024-06-10 1502阅读

【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境

大家好 我是寸铁👊

总结了一篇【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境✨

喜欢的小伙伴可以点点关注 💝

【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境


引言 🍎

在当今快速发展的深度学习领域,构建一个稳定、高效的开发环境是每个研究人员和开发者的必备条件。而在 CentOS 7 这样的操作系统上,如何将最新的Python 3.10和PyTorch 2.3.0焕发出最佳性能,是一项需要技巧和专业知识的挑战。本文将引导您通过一系列高级步骤和最佳实践,打造一个完美无缺的深度学习环境,让您的项目在技术之巅驰骋!


前言🍐

本文是笔者踩过无数坑后亲测出来的安装教程,按照这个教程走下来,可以正常使用pip3 install XX安装第三方包,笔者在安装过程看过近30篇安装教程博客,很多的安装步骤走下来经常会报错。例如:大家用pip3 install XX发现报错ssl ,然后你开始查找配置ssl证书,发现无论是选择任何的信任源都发现不行,最后发现是ssl版本过旧,所以,本文优先更新openssl,确保pip3 install XX成功!

如果你也是深度学习新手,正苦恼如何搭建环境,跟着笔者一步步走,过程非常丝滑!


安装场景🌈

  • Centos7操作系统

    虚拟机、服务器常见安装场景

    • 容器内的Centos7操作系统

      容器内部安装Centos7镜像后,也是一个Linux,安装操作教程相同,笔者亲测有效。

      • 使用dockerfile+requirements.txt安装

        本质上是docker帮助我们一行行执行命令,其实也是一样的,需要注意dockerfile的编写规范,详情见下方的dockerfile文件,dockerfile也是笔者跑通安装环境的一个范本,笔者亲测有效。


        在虚拟机、服务器安装🗽

        一、升级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
                            

                            本文指定安装目录/usr/local/python3

                            • 创建软链接,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
                                

                                【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境

                                三、 验证pip3 install 是否成功🍅

                                pip3 install numpy
                                pip3 install numpy
                                

                                安装成功如下:

                                【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境


                                在docker内部安装🏭

                                • 容器内的Centos7操作系统

                                  容器内部安装Centos7镜像后,也是一个Linux,安装操作教程相同,笔者亲测有效。

                                  注意:在容器内安装Centos7用上面的教程前,要先装一下openssl

                                  安装命令如下:

                                  yum install openssl
                                  

                                  后续遇到xx: not command,用yum install xx即可。

                                  之后,按照上面的教程一步步走即可安装成功。

                                  安装后,如果需要将容器打包成镜像,则用如下命令:

                                  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 //先在后台启动
                                            

                                            运行结果如下:

                                            【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境

                                            运行文件✈️

                                            后面需要将本地的py文件放到容器内部跑,则需要使用docker cp命令将py文件复制到容器内部的路径下再用python3运行即可。

                                            命令如下:

                                            docker cp /local/path/directory container_name:/path/to/directory
                                            

                                            参考文章🚊

                                            博主写得很好,博客简洁高效

                                            https://zhuanlan.zhihu.com/p/661077162


                                            结语🌅

                                            通过本文的指引和技巧,您已经了解了在 CentOS 7 上构建Python 3.10和PyTorch 2.3.0的深度学习环境所需的关键步骤和优化方法。在您的掌控之下,这个环境将成为您探索人工智能的强大工具,为您的研究和项目注入新的活力。愿您在深度学习之路上驾驭风云,创造出令世界瞩目的成果。


                                            看到这里的小伙伴,恭喜你又掌握了一个技能👊

                                            希望大家能取得胜利,坚持就是胜利💪

                                            我是寸铁!我们下期再见💕


                                            往期好文💕

                                            保姆级教程

                                            【保姆级教程】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解决方案


                                            Go面试向

                                            【Go面试向】defer与time.sleep初探

                                            【Go面试向】defer与return的执行顺序初探

                                            【Go面试向】Go程序的执行顺序

                                            【Go面试向】rune和byte类型的认识与使用

                                            【Go面试向】实现map稳定的有序遍历的方式

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]