当前位置:   article > 正文

宝塔面板抢先体验Ubuntu23.04+Python3.11.2+Flask2.3.2_宝塔面板更新python

宝塔面板更新python

宝塔面板环境效果

Ubuntu 23.04 中的新功能

Ubuntu 23.04 附带了新的 6.2 Linux 内核,带来了许多新功能。

值得注意的 Ubuntu 内核功能:

  • 支持使用通用和低延迟内核构建和运行树外Rust模块
  • 较新的 LSM 堆叠和 AppArmor 补丁集

显著的内核功能:

  • 通过调用深度跟踪提高旧版英特尔 Skylake CPU的性能
  • 支持英特尔锐炫显卡 DG2/炼金术士
  • 新的英特尔 TDX 访客驱动程序
  • 支持 Sony DualShock 4 游戏手柄
  • 更新了 zstd 压缩代码
  • 其他 BPF 改进
  • 新的硬件支持,各种性能和安全性改进

Python3 已更新至 v3.11

Python 3.11 新特性

  • 更好的错误信息提示:错误提示信息更加准确
  • 支持抛出抛出异常组:需要使用except*进行捕获
  • 增加内置支持toml格式解析:从文件读取和字符串中读取
  • 性能提升:Python 3.11 比 Python 3.10 快10-60%

宝塔面板官方Shell部署脚本修改

宝塔面板官方Ubuntu部署脚本https://download.bt.cn/install/install-ubuntu_6.0.sh

1、修改python_bin属性值(必须)

使用文本编辑器(记事本、VScode等)打开,按下Ctrl+F组合键搜索 python_bin 。

将python_bin属性值修改成python3,方便脚本调用系统自带的python解释器。

2、全文替换apt-get(可忽略)

apt安装包时显示进度条,按下Ctrl+H组合键搜索 apt-get,全文替换成apt。

3、跳过防火墙设置(可忽略)

按下Ctrl+F组合键搜索 Set_Firewall,在Install_Main()函数中。用#注释Set_Firewall就可以跳过防火墙设置。

    4、设置宝塔面板的Python运行环境(核心)

(1)按下Ctrl+F组合键搜索Install_Python_Lib()函数,这里面是宝塔运行的python环境搭建。

官方脚本中的python3.7是源码编译,特别消耗时间,还不能利用系统自带的python环境。

   将Install_Python_Lib()函数全部替换成以下代码。(官方代码臃肿)

  1. Install_Python_Lib(){
  2. #宝塔面板主目录
  3. pyenv_path="/www/server/panel"
  4. #检查是否存在Python虚拟环境目录(用于重装面板检查)
  5. if [ -d $pyenv_path/pyenv ];then
  6. #删除原有的python虚拟环境
  7. rm -rf $pyenv_path/pyenv
  8. fi
  9. #检查是否存在宝塔面板主目录
  10. if [ ! -d $pyenv_path/pyenv ];then
  11. #若不存在,则创建文件夹
  12. mkdir -p $pyenv_path
  13. fi
  14. #检查写权限
  15. echo "True" > /www/disk.pl
  16. if [ ! -w /www/disk.pl ];then
  17. Red_Error "ERROR: Install python env fielded." "ERROR: /www目录无法写入,请检查目录/用户/磁盘权限!"
  18. else
  19. rm -f /www/disk.pl
  20. fi
  21. #安装python3依赖
  22. apt install python3 python3-venv python3-dev -y
  23. #设置python虚拟环境
  24. python3 -m venv $pyenv_path/pyenv
  25. #进入python虚拟环境
  26. source $pyenv_path/pyenv/bin/activate
  27. #设置pip镜像源
  28. #1、手动设置(清华源)
  29. pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  30. #2、脚本优选
  31. # curl -Ss --connect-timeout 3 -m 60 $download_Url/install/pip_select.sh|bash
  32. #安装宝塔运行的python第三方依赖库
  33. pip install wheel
  34. pip install pip-review
  35. wget -O pip-packs.txt $download_Url/install/pyenv/pip-packs.txt
  36. pip install -r pip-packs.txt
  37. rm -f pip-packs.txt
  38. #pip一键更新全部包
  39. pip-review --auto
  40. }

效果图:

(2)按下Ctrl+H组合键搜索 /www/server/panel/pyenv/bin/pip3,全文替换成pip。

 (3)按下Ctrl+H组合键搜索 btpip,全文替换成pip。

(4)按下Ctrl+H组合键搜索 btpython,全文替换成python3。 

(5)按下Ctrl+H组合键搜索 python3.7,全文删除(全文替换成空)。

5、设置系统ntp服务(可忽略)

方便查看系统日志时间, 按下Ctrl+F组合键搜索 Install_Deb_Pack(),在函数体中直接加入。

  1. #设置时区
  2. timedatectl set-timezone Asia/Shanghai
  3. #设置NTP同步服务器(阿里云、腾讯云、清华源)
  4. cat > /etc/systemd/timesyncd.conf <<EOF
  5. [Time]
  6. NTP=ntp.alyun.com
  7. FallbackNTP=ntp.tencent.com,ntp.tuna.tsinghua.edu.cn
  8. RootDistanceMaxSec=5
  9. PollIntervalMinSec=32
  10. PollIntervalMaxSec=2048
  11. ConnectionRetrySec=30
  12. SaveIntervalSec=60
  13. EOF
  14. #重启时间服务
  15. service systemd-timesyncd restart

 效果图:  

6、面板报错解决

(1)Flask v2.3+已弃用“session_cookie_name”属性

解决方法:按下Ctrl+F组合键搜索 Set_Bt_Panel() 函数,在函数体结尾处(Set_Firewall()函数前)添加以下代码。

  1. #获取flask版本
  2. flask_version=$(pip show flask | grep 'Version:' | grep -Eo '[0-9]+\.[0-9]+')
  3. if [ $flask_version == "2.3" ];then
  4. #将已弃用的 app.session_cookie_name 替换为 app.config['SESSION_COOKIE_NAME']
  5. sed -i "s/app\.session_cookie_name/app.config['SESSION_COOKIE_NAME']/g" /www/server/panel/class/flask_session/sessions.py
  6. fi

效果图: 

(2)public.PanelError: 面板运行时发生错误: 解析软件

解决方法:到面板设置中绑定宝塔用户,系统会从官网获取数据生成/www/server/panel/data/userInfo.json(建议另存,方便以后重装面板和系统直接替换)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/711704
推荐阅读
相关标签
  

闽ICP备14008679号