隔壁老 發表於 2023-4-25 08:58:00

CentOS 安装 python3.x 为默认

<p><span style="font-size: 15px">CentOS 7 中默认安装了 Python,但是版本是2.x的,由于2020年python2.x将停止更新,因此需要将版本升级至3.x。但由于python2.x是系统集成的,很多命令都是要基于python2.x,比如:yum。因此在更新 Python 时,建议新旧版本共存。</span></p>
<h3><span style="font-size: 15px; color: rgba(186, 55, 42, 1)">当前初始环境</span></h3>
<pre class="language-bash highlighter-hljs"><code># 该系统为最小化安装
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
# uname -r
3.10.0-1160.el7.x86_64

# python
Python 2.7.5 (default, Oct 14 2020, 14:45:30)
on linux2
Type "help", "copyright", "credits" or "license" for more information.
&gt;&gt;&gt;
# python -V
Python 2.7.5
# whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz</code></pre>
<h3><span style="font-size: 15px; color: rgba(186, 55, 42, 1)">centos7安装python3有两种方式:</span></h3>
<ul>
<li><span style="font-size: 15px">yum安装,简单方便,但是版本受限</span></li>
<li><span style="font-size: 15px">源码安装,较yum安装复杂一点,可安装官方任意版本</span></li>
</ul>
<h4><span style="font-size: 15px; color: rgba(186, 55, 42, 1)">YUM安装</span></h4>
<ul>
<li><span style="font-size: 15px">自带Python版本:2.7.5</span></li>
<li><span style="font-size: 15px">安装Python版本:3.6.8</span></li>
</ul>
<pre class="language-bash highlighter-hljs"><code># 安装epel源,python3在默认的源中是没有的
# yum install epel-release -y
# 查看python3版本,根据查到python3的版本来安装,随着python版本更新,epel源中的版本也可能会出现更高版本的python
# yum search python3      //看到目前有python3.4,python3.6两个版本可以安装
# yum install python36 -y
# 检查安装结果
# rpm -qa | grep python3
python3-pip-9.0.3-8.el7.noarch
python3-libs-3.6.8-18.el7.x86_64
python3-setuptools-39.2.0-10.el7.noarch
python3-3.6.8-18.el7.x86_64
# rpm -ql python3-3.6.8-18.el7.x86_64
/usr/bin/pydoc3
/usr/bin/pydoc3.6
/usr/bin/python3
/usr/bin/python3.6
/usr/bin/python3.6m
/usr/bin/pyvenv
/usr/bin/pyvenv-3.6
/usr/share/doc/python3-3.6.8
/usr/share/doc/python3-3.6.8/README.rst
/usr/share/licenses/python3-3.6.8
/usr/share/licenses/python3-3.6.8/LICENSE
/usr/share/man/man1/python3.1.gz
/usr/share/man/man1/python3.6.1.gz

# 设置默认python版本为python-3.6.8
# mv /usr/bin/python /usr/bin/python_bak
# ln -s /usr/bin/python3 /usr/bin/python
# ls -l /usr/bin/python*
lrwxrwxrwx1 root root    16 Apr 24 11:57 /usr/bin/python -&gt; /usr/bin/python3
lrwxrwxrwx. 1 root root   9 Oct82022 /usr/bin/python2 -&gt; python2.7
-rwxr-xr-x. 1 root root7144 Oct 142020 /usr/bin/python2.7
lrwxrwxrwx1 root root   9 Apr 24 11:30 /usr/bin/python3 -&gt; python3.6
-rwxr-xr-x2 root root 11328 Nov 172020 /usr/bin/python3.6
-rwxr-xr-x2 root root 11328 Nov 172020 /usr/bin/python3.6m
lrwxrwxrwx. 1 root root   7 Oct82022 /usr/bin/python_bak -&gt; python2

# python -V
Python 3.6.8
# python2 -V
Python 2.7.5
# python3 -V
Python 3.6.8

# ========== 无法使用yum =============
# yum install net-tools -y
File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

# 解决方法,仅修改以下两文件的第一行
# vim /usr/bin/yum
#!/usr/bin/python修改为---&gt; #!/usr/bin/python2

# vim /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python修改为---&gt; #!/usr/bin/python2</code></pre>
<ul>
<li><span style="font-size: 15px">另外,系统默认的python2.7是没有pip工具的,需要的话,同样安装pip工具。</span></li>
<li><span style="font-size: 15px">pip工具也是分python2和python3的,可以共存,下载的包不能共享,即使用pip3下载的包只能在python3中使用,无法在python2.7中使用。</span></li>
</ul>
<pre class="language-bash highlighter-hljs"><code># yum install python2-pip -y

# mv /usr/bin/pip /usr/bin/pip_bak
# ln -s /usr/bin/pip3 /usr/bin/pip
# ls -l /usr/bin/pip*
lrwxrwxrwx 1 root root13 Apr 24 15:20 /usr/bin/pip -&gt; /usr/bin/pip3
-rwxr-xr-x 1 root root 284 Sep32020 /usr/bin/pip2
-rwxr-xr-x 1 root root 288 Sep32020 /usr/bin/pip2.7
-rwxr-xr-x 1 root root 407 Oct 142020 /usr/bin/pip3
lrwxrwxrwx 1 root root   9 Apr 24 14:46 /usr/bin/pip-3 -&gt; ./pip-3.6
lrwxrwxrwx 1 root root   8 Apr 24 14:46 /usr/bin/pip-3.6 -&gt; ./pip3.6
-rwxr-xr-x 1 root root 407 Oct 142020 /usr/bin/pip3.6
-rwxr-xr-x 1 root root 282 Sep32020 /usr/bin/pip_bak

# pip -V
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
# pip2 -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
# pip3 -V
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)</code></pre>
<blockquote>
<p><strong><span style="font-size: 15px; color: rgba(0, 0, 0, 1)">注意:Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具。</span></strong></p>
</blockquote>
<h4><span style="color: rgba(186, 55, 42, 1); font-size: 15px">源码安装</span></h4>
<blockquote>
<p><span style="font-size: 15px">Centos7系统恢复快照至初始环境。</span></p>
</blockquote>
<ul>
<li><span style="font-size: 15px">自带Python版本:2.7.5</span></li>
<li><span style="font-size: 15px">安装Python版本:3.9.16</span></li>
</ul>
<p><span style="font-size: 15px">首先去python官网下载页面,下载需要的稳定版python3源码</span></p>
<ul>
<li><span style="font-size: 15px"><strong>【https://www.python.org/downloads/source/】</strong></span></li>
<li><span style="font-size: 15px"><strong>【https://www.python.org/ftp/python/】</strong></span></li>
</ul>
<p><span style="font-size: 15px">目前最新版本为:Python 3.11.3</span></p>
<p><img src="https://img2023.cnblogs.com/blog/1080590/202304/1080590-20230424155606906-1213350391.png"></p>
<pre class="language-bash highlighter-hljs"><code># 安装依赖
# yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel wget gcc make
# 下载需求版本
# wget https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tgz
# tar -xf Python-3.9.16.tgz
# cd Python-3.9.16
# ./configure --prefix=/usr/local/python3.9
# make &amp;&amp; make install

# 设置默认python版本为 python-3.9.16
# mv /usr/bin/python /usr/bin/python_bak
# ln -s /usr/local/src/python3.9/bin/python3 /usr/bin/python
# ln -s /usr/local/src/python3.9/bin/python3 /usr/bin/python3
# ls -l /usr/bin/python*
lrwxrwxrwx1 root root   36 Apr 24 16:23 /usr/bin/python -&gt; /usr/local/src/python3.9/bin/python3
lrwxrwxrwx. 1 root root    9 Oct82022 /usr/bin/python2 -&gt; python2.7
-rwxr-xr-x. 1 root root 7144 Oct 142020 /usr/bin/python2.7
lrwxrwxrwx1 root root   36 Apr 24 16:23 /usr/bin/python3 -&gt; /usr/local/src/python3.9/bin/python3
lrwxrwxrwx. 1 root root    7 Oct82022 /usr/bin/python_bak -&gt; python2

# python -V
Python 3.9.16
# python2 -V
Python 2.7.5
# python3 -V
Python 3.9.16

# ========== 无法使用yum =============
# yum list
File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

# 解决方法,仅修改以下两文件的第一行
# vim /usr/bin/yum
#!/usr/bin/python修改为---&gt; #!/usr/bin/python2

# vim /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python修改为---&gt; #!/usr/bin/python2</code></pre>

</div>
<div id="MySignature" role="contentinfo">
    <!-- 版权保护
<div style="color: red; font-weight: bold; font-size: 15px;">
更多最新文章:【传送门】<br>
</div>
<br>
<div style="text-align:center;background-color:font-size: 24px; ">
-->
<div style="color: red; text-align: center; font-weight: bold; font-size: 15px;">
**********   如果您认为这篇文章还不错或者有所收获,请点击右下角的【推荐】/【赞助】按钮,因为您的支持是我继续创作分享的最大动力!   **********
</div>
<br>

<div style="background:LightBlue; color:#0; font-size: 15px;">
            作者:讲文张字<br>
            出处:https://www.cnblogs.com/zhangwencheng<br>
            版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出
             原文链接
   
</div><br><br>
来源:https://www.cnblogs.com/zhangwencheng/p/17347288.html
頁: [1]
查看完整版本: CentOS 安装 python3.x 为默认