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

宝塔面板环境效果

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()函数全部替换成以下代码。(官方代码臃肿)

Install_Python_Lib(){
    #宝塔面板主目录
	pyenv_path="/www/server/panel"
    #检查是否存在Python虚拟环境目录(用于重装面板检查)
	if [ -d $pyenv_path/pyenv ];then
        #删除原有的python虚拟环境
		rm -rf $pyenv_path/pyenv
	fi

    #检查是否存在宝塔面板主目录
    if [ ! -d $pyenv_path/pyenv ];then
        #若不存在,则创建文件夹
	    mkdir -p $pyenv_path
    fi

    #检查写权限
	echo "True" > /www/disk.pl
	if [ ! -w /www/disk.pl ];then
		Red_Error "ERROR: Install python env fielded." "ERROR: /www目录无法写入,请检查目录/用户/磁盘权限!"
	else
		rm -f /www/disk.pl
	fi

    #安装python3依赖
	apt install python3 python3-venv python3-dev -y

    #设置python虚拟环境
	python3 -m venv $pyenv_path/pyenv
	#进入python虚拟环境
	source $pyenv_path/pyenv/bin/activate

    #设置pip镜像源
    #1、手动设置(清华源)
	pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    #2、脚本优选
	# curl -Ss --connect-timeout 3 -m 60 $download_Url/install/pip_select.sh|bash
    
    #安装宝塔运行的python第三方依赖库
	pip install wheel
    pip install pip-review
	wget -O pip-packs.txt $download_Url/install/pyenv/pip-packs.txt
	pip install -r pip-packs.txt
	rm -f pip-packs.txt

    #pip一键更新全部包
    pip-review --auto
}

效果图:

(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(),在函数体中直接加入。

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

 效果图:  

6、面板报错解决

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

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

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

效果图: 

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

以奖代补

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值