1 首先下载源tar包
可利用linux自带下载工具wget下载,如下所示:wget https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz
直接在本机上下载以后,rx上传。下载地址:https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz
2 下载完成后到下载目录下,解压
tar -xzvf Python-3.9.10.tgz
3 编译
(1)编译前先在/usr/local建一个文件夹python3(作为python的安装路径,以免覆盖老的版本)
mkdir /usr/local/python3
(2)开始编译安装(在解压目录下进行)
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)
cd Python-3.6.0
./configure --with-ssl
./configure --prefix=/usr/local/python3 #配置安装目录
make #编译
make install #安装
4 建立软连接
ln -sf /usr/local/python3/bin/python3.9 /usr/bin/python #将python3.9指向python
ln -sf /usr/local/python3/bin/pip3 /usr/bin/pip #将pip3指向pip
5 查看python版本
python --version 或 python -V
6 遇到的问题解决
(1)yum命令报错: File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
原因:centos中python从2.x升级到3.x后,将python默认设置为python3了,而当前yum使用的仍是python2导致python3解析python2的语法错误
解决办法:查了很多资料,都说是将vim /usr/bin/yum文件中第一行python指向python2旧版本,可是我指向后发现yum命令还是无法执行,报错:-bash: /usr/bin/yum: /usr/bin/python2: bad interpreter: No such file or directory
在/usr/bin下找不到对应的python2编译器,原来是我在安装python3时没有进行原python的备份,导致python直接指向python3,丢失了python2,没办法在其他centos环境中找到对应的python编译器,更名为python2放在/usr/bin下,并授权chmod -R 777 python2,此时执行yum命令正确了
(2)python执行selenium web自动化.py文件,报错:找不到Chrome
原因:web运行时使用chrome浏览器,而linux中未安装对应版本的chrome
解决办法:下载chrome:wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
安装chrome:yum install ./google-chrome-stable_current_x86_64.rpm
安装后验证版本号:google-chrome --version
根据chrome版本号下载对应的linux版本的chromedriver:https://chromedriver.storage.googleapis.com/index.html
chromedriver进行解压:unzip chromedriver_linux64.zip
解压目录下对chromedriver授权:chmod -X chromedriver (或chmod -R 777 chromedriver)
将chromedriver移动或者软连接到/usr/bin下:移动>>mv chromedriver /usr/bin 软连接>>ln -s 源文件 /usr/bin/chromedriver
输入chromedriver验证是否成功
(3)问题2解决后,python再次执行selenium web自动化.py文件,又报错:/usr/bin/google chrome不再运行,因此ChromeDriver假设chrome已经崩溃
selenium在linux上运行会需要一些配置,加上配置就好了
options.add_argument('--headless') # 无界面模式
options.add_argument('--no-sandbox') # 以最高权限运行