宝塔面板多Python版本管理与项目部署
宝塔面板多Python版本管理与项目部署
在宝塔面板环境中进行Python项目部署时,最常见的挑战是版本冲突:系统自带的Python版本(如3.6)过低,无法满足项目依赖(如需要Python >= 3.10)的要求。
我们将严格按照以下步骤,从安装新版Python到正确创建和管理虚拟环境,确保您的项目能在正确的环境中顺利运行。
1. 在宝塔面板中安装并管理多版本Python
目标:为项目准备一个符合要求的、高版本的Python解释器。
为什么? 宝塔面板所在的操作系统(如CentOS 7)自带的Python 3.6.x是系统底层工具(如yum)的依赖,绝对不能直接替换或升级。正确的做法是安装一个全新的、独立的高版本Python,供我们的项目专用。
操作步骤:
- 登录您的宝塔面板。
- 进入 “软件商店” -> “应用搜索” -> 搜索并打开 “Python环境管理器”。
- 点击 “版本管理” 标签页。
- 在下拉列表中,选择您需要的Python版本。根据我们的实践经验,
3.10.x
是当前兼容性最好、最稳定的版本。点击“安装”。 - 等待安装完成。现在,您的服务器上已经同时存在了系统自带的Python 3.6和我们新安装的Python 3.10,它们互不干扰。
2. 使用指定的新版本Python创建虚拟环境
目标:创建一个只属于我们项目的、基于Python 3.10的纯净工作环境。
为什么? 直接使用系统默认的python3
命令创建虚拟环境,会继承Python 3.6,导致项目无法运行。我们必须精确地“告诉”系统,使用我们刚刚安装的Python 3.10来创建环境。
操作步骤:
-
找到新版Python的“身份证”——可执行文件路径
通过SSH登录服务器,使用find
命令查找Python 3.10的安装位置。这是最关键的一步。find /www -name "python3.10"
您会得到一个类似这样的路径,请复制并记下它:
/www/server/pyporject_evn/versions/3.10.13/bin/python3.10
-
(可选)为新版Python设置一个永久别名(快捷方式)
为了方便日后使用,可以给这个长长的路径起一个短名字,比如py10
。# 将别名配置写入环境变量文件 echo "alias py10='/www/server/pyporject_evn/versions/3.10.13/bin/python3.10'" >> ~/.bashrc# 立即生效 source ~/.bashrc
现在,您在任何地方输入
py10 -V
,都应该能看到Python 3.10.13
的输出。 -
创建虚拟环境
进入您的项目目录(例如/www/wwwroot/markitdown_service
),然后执行创建命令。- 方法一(推荐,最清晰):使用完整路径
/www/server/pyporject_evn/versions/3.10.13/bin/python3.10 -m venv venv
- 方法二(如果您设置了别名):使用别名
py10 -m venv venv
执行后,您的项目目录下会多出一个名为
venv
的文件夹,这就是基于Python 3.10的全新虚拟环境。 - 方法一(推荐,最清晰):使用完整路径
3. 激活环境、安装依赖与测试
目标:在正确的环境中,完成项目的配置和首次运行。
操作步骤:
-
激活新环境并验证版本
# 激活 source venv/bin/activate# 验证,这是“验明正身”的关键一步 python -V ```此时,终端显示的**必须是 `Python 3.10.x`**。如果不是,说明第2步操作有误。
-
准备
requirements.txt
文件并安装依赖
使用cat
或vim
创建requirements.txt
,内容如下:oss2 numpy<2.0
然后执行安装:
pip install -r requirements.txt
-
执行本地测试
准备好您的index.py
和local_test.py
脚本,并设置好环境变量后,运行测试:# 运行 python local_test.py
检查OSS
outputs/
目录,确认文件已成功生成。
4. 如何“推倒重来”:清理错误的虚拟环境
目标:当您发现当前的虚拟环境是基于错误的Python版本(如3.6)创建时,如何安全、彻底地清理并重新开始。
为什么? 虚拟环境 (venv
) 的设计就是轻量且“可随时丢弃”的。直接删除重建,是解决环境问题的最快、最干净的方法。
操作步骤:
-
退出当前环境
如果您的命令行提示符前还有(venv)
字样,说明您仍处于虚拟环境中。首先需要退出。deactivate
-
删除旧的虚拟环境文件夹
这个操作是物理删除,不可逆,但非常安全,不会影响您的任何项目代码。rm -rf venv
-
重新开始
清理完毕后,您的项目目录就回到了一个干净的状态。现在,您可以放心地回到本文的第2步第3点,使用正确的Python 3.10路径,创建一个全新的、正确的虚拟环境。