1、安装依赖包
yum install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
2、编译安装。
注意:原先linux 系统上就有python2 存在,我们不要去删除他,否则yum 和防火墙等无法使用
查看 Centos7自带的python版本
[root@hadoop105 ~]# python -V
Python 2.7.5
安装Python-3.8.10,安装时指定--prefix
,安装到自己指定的目录
tar -zxf Python-3.8.10.tar.xz
cd Python-3.8.10
# root用户编译安装
./configure --with-ssl --prefix=/usr/local/python3/
make && make install
# 非root用户安装
sudo ./configure --with-ssl --prefix=/opt/module/python3/
sudo make && make install
下载 Python-3.9.0
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
添加环境变量:
## root用户
# PYTHON_PATH
PYTHON_HOME=/usr/local/python3
PATH=$PATH:$PYTHON_HOME/bin
export PYTHON_HOME
## 非root用户
# PYTHON_PATH
PYTHON_HOME=/opt/module/python3
PATH=$PATH:$PYTHON_HOME/bin
export PYTHON_HOME
或者执行以下命令
echo "export PATH=/opt/module/python3/bin:$PATH">>~/.bashrc
[root用户]创建软连接
[root用户]添加执行文件到 /usr/bin 目录下,使其全局生效。
[root用户]在添加前,/usr/bin 目录下可能有python2 版本的执行文件
## root用户
# 这里我们将原先的python 改个名
mv /usr/bin/python /usr/bin/python.bak
[root用户]再创建软连接
## root用户
ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
建立软连接
ln -s /usr/local/bin/python3.9 /usr/local/bin/python3
ln -s /usr/local/bin/pip3.9 /usr/local/bin/pip3
查看Python版本
python -V
# 下面会显示:
Python 3.8.10
非root用户
# 下载安装包
wget https://bootstrap.pypa.io/get-pip.py
# 查看下载的文件
[atguigu@hadoop105 ~]$ ll
总用量 2556
drwxrwxrwx. 2 atguigu atguigu 250 8月 10 09:24 bin
-rw-rw-r-- 1 atguigu atguigu 2605506 7月 22 17:45 get-pip.py
# 安装pip
[atguigu@hadoop105 ~]$ /opt/module/python3/bin/python3.8 get-pip.py
...
Successfully installed pip-23.2.1 wheel-0.41.2
# 安装相关的依赖库
pip install requests
3、优化
[root用户]修改yum 配置文件:
因为yum 和firewall 都依赖python,所以更改/usr/bin 下的执行文件会导致它们不可用,需要修改配置
vim /usr/bin/yum
#将第一行 "#!/usr/bin/python" 改为 "#!/usr/bin/python2.7" 即可
vim /usr/libexec/urlgrabber-ext-down
#这里也一样,#!/usr/bin/python 改为 #!/usr/bin/python2.7
修改Firewalls配置:
vim /usr/bin/firewall-cmd
#将第一行 "#!/usr/bin/python" 改为 "#!/usr/bin/python2.7"
vim /usr/sbin/firewalld
#将第一行 "#!/usr/bin/python" 改为 "#!/usr/bin/python2.7";
4、验证
# 非root用户执行查看
[atguigu@hadoop105 ~]$ python3 -V
Python 3.8.10
5、测试环境
test_pfflink.py
#!/usr/bin/env python
from pyflink.datastream import StreamExecutionEnvironment
env = StreamExecutionEnvironment.get_execution_environment()
print("PyFlink 已成功安装!")
Linux环境执行以下命令
[root@hadoop105 atguigu]# python3 test_pyflink.py
PyFlink 已成功安装!
报错记录:
1、jdk路径问题,source /etc/profile
确保环境还在。
2、protobuf 版本太新,导致与 PyFlink 不兼容。
解决办法:降低 protobuf 版本到 3.20.x 或更低版本,或者设置环境变量 ROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python,但这会使用纯 Python 解析,速度会比较慢。
# 查看protobuf版本,
pip show protobuf
# 卸载 protobuf
pip uninstall protobuf
# 更换protobuf版本
pip install protobuf==3.20.3
# 参考资料
https://www.cnblogs.com/miss103/p/14086121.html