完整安装python3.10

1、安装之前的一个类先安装:

yum install libffi-devel -y
 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

不然 make的时候,会报缺少很多包。仔细看中间有提示

如果是华为云,最好先安装openssl 1.1.1及以上的版本。

https://blog.csdn.net/yangjiechao945/article/details/124196480

 这里安装的是1.1.1w的版本

wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz

然后再编译make 安装,后续再返回这里重新安装也可。

tar -zxvf openssl-1.1.1w.tar.gz
 
cd openssl-1.1.1w
 
./config --prefix=/usr/local/openssl #如果此步骤报错,需要安装perl以及gcc包
 
make && make install
 
mv /usr/bin/openssl /usr/bin/openssl.bak
 
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
 
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v # 设置生效

查看openssl版本

查看系统的当前openssl版本

  openssl version -a

https://blog.csdn.net/wuyepiaoxue789/article/details/117958240

2、卸载默认的python3.6

输入python3 发现默认有python3
卸载python3
      rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps       卸载pyhton3
      whereis python3 |xargs rm -frv           删除所有残余文件
      成功卸载!
      whereis   python       查看现有安装的python

3、正式安装 

### 这里修改为对应的3.10.0版本即可
#wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz
# 如 sudo wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
wget https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tgz
或者下载到本地,再上传更快一些。3.9.16 make之后有一个numb的包安装不下去。用3.9.20就好了
tar -zxvf Python-3.9.16.tgz
cd Python-3.9.16
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --enable-optimizations
[注意:--with-openssl=/usr/local/openssl 就是上面的最新的openssl安装路径,这里就是这个]
make 
make install
ln -sf /usr/local/python3/bin/python3.9 /usr/bin/python

python3 检查一下


方案二:./configure --enable-optimizations --with-openssl=/usr/local/openssl
make altinstall

注意:上面make如果有报错。就删除Python-3.9.16。重新解压一遍即可。

另外一个问题:python 没有指向python3 或者说python3.9的

分别检查:

which python

which python3

whereis python 或者whereis python3
也可以检查

同时检查 pip3 和pip

which pip3

which pip
默认没有pip命令,所以还要建立连接一下,yum install pip就有
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
ln -s /usr/local/python3/bin/pip /usr/bin/pip

至此,彻底安装完全安装。

如果yum 不可用。修改vi /usr/bin/yum文件中的第一行为#!/usr/bin/python2.7

场景:如何恢复python2.7,如果不小心覆盖了


bash
复制代码
sudo sed -i '1s|^#!/usr/bin/python$|#!/usr/bin/python2|' /usr/bin/yum

sudo sed -i '1s|^#!/usr/bin/python$|#!/usr/bin/python2|' /usr/libexec/urlgrabber-ext-down



验证
确认 yum 是否恢复正常工作:

bash
复制代码
sudo yum --version

./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/bin/openssl --enable-optimizations
make
make install

以下可以忽略:【 

 

解决方案: 

ln -s /usr/local/python39/bin/python3 /usr/local/bin/python

这条指令的意思是:which python 去  /usr/local/bin/ 下面找python。然后指向了绝对路径/usr/local/python39/bin/python3

同理。which python3 去  /usr/local/bin/ 下面找python3 软连接。然后指向了目录/usr/local/python39/bin 下面搜索。查看/etc/profile 。 也可以绝对路径。就不用/etc/profile配置了。

最后检查:python 或者 python3 进入了显示版本号,都正常 就代表成功了


 

-----------------------------------------------------------------------------------------------------

运行项目之后:安装的包都在这里面。

/usr/local/python39/lib/python3.9/site-packages

检查一下,有哪些第三方库

unable to execute /bin/yum: No such file or directory 

 python straxxx.py

问题一:

    import numpy as np
ModuleNotFoundError: No module named 'numpy'

解决方案:

pip3 install numpy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

pip 安装 到 公共的python3.9的site-pages里面

但pip安装 到了python3.6里面去了

然后python3 进去,发现是python3.6.

如何修改这个版本呢。

卸载python3.6.centos默认装的是这个版本。

卸载默认的3.6

卸载python3
      rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps       卸载pyhton3
      whereis python3 |xargs rm -frv           删除所有残余文件
      成功卸载!

问题5:

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips  26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168

解决方案:openssl version -a 又是最新版本OpenSSL 1.1.1w  11 Sep 2023

重新编译python即可。

问题六:python进去还是python2.7的,不是python3

File "into_rediandata.py", line 53 sql = f"INSERT INTO {table_name} (id, today_riqi, redian_type, stock_code, stock_name) VALUES (%s, %s, %s, %s, %s)" ^ SyntaxError: invalid syntax

以上报错提示,就代表还是python2的环境

解决方案:

ln -sf /usr/local/python3/bin/python3.9 /usr/bin/python

一条语句搞定

参考文章:

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

centos 安装yum

https://blog.csdn.net/u014212540/article/details/127886486

其他参考文章:https://blog.csdn.net/wuyepiaoxue789/article/details/117958240

yum install lrzsz 报错


你遇到的 SyntaxError: invalid syntax 错误,通常是因为 CentOS 7 的某些系统脚本使用了不兼容 Python 3 的语法。CentOS 7 的许多系统工具默认使用 Python 2,所以更改系统默认 Python 版本可能会导致兼容性问题。

要解决这个问题,可以采取以下几种方法:

方法 1:暂时将系统默认 Python 版本切回 Python 2
你可以暂时将系统默认的 Python 环境恢复为 Python 2(系统自带),然后再执行 yum 相关命令:

sudo ln -sf /usr/bin/python2 /usr/bin/python
然后再尝试运行 yum install 命令,完成后再将 python 链接改回 Python 3.9:


sudo ln -sf /usr/local/bin/python3.9 /usr/bin/python
方法 2:在不更改默认 Python 版本的情况下执行 yum
你可以直接调用系统默认的 Python 2 环境,指定 yum 使用 Python 2 执行:


sudo /usr/bin/python2 /usr/bin/yum install lrzsz
这种方法不需要更改系统的 Python 默认版本设置,可以减少系统工具因 Python 版本变化而出现问题的可能性。

方法 3:修复 yum 对 Python 2 的依赖
也可以修改 yum 的头文件,确保 yum 使用 Python 2 解释器。

打开 yum 的主程序文件:

bash
复制代码
sudo vi /usr/bin/yum
将文件顶部的 #!/usr/bin/python 修改为 #!/usr/bin/python2,确保它明确使用 Python 2 解释器。

保存并退出。

Logo

更多推荐