如何在Linux/Ubuntu托管服务器部署Python应用及解决打包与依赖问题
部署基于Selenium+pyodbc的Python应用到Linux/Ubuntu服务器
一、正确生成Linux可执行包(PyInstaller方式)
你之前生成.exe是Windows平台专属格式,Linux/Ubuntu无法识别。必须在Linux环境(服务器本身、本地Linux虚拟机或WSL均可)内完成打包:
- 在Linux环境搭建Python环境并安装项目依赖:
pip install selenium pyodbc - 安装PyInstaller:
pip install pyinstaller - 执行正确的打包命令(你之前的命令少写了
file,需用--onefile参数):pyinstaller --onefile main.py - 打包完成后,
dist目录下会生成一个无后缀的可执行文件,这就是能在Linux/Ubuntu上直接运行的程序包。
二、服务器必须预先安装的依赖
1. Selenium相关组件
Selenium依赖浏览器及对应驱动,以Chrome为例:
- 安装Chrome浏览器:
sudo apt update && sudo apt install -y chromium-browser - 安装匹配版本的ChromeDriver:
若版本不匹配,可手动下载对应版本的驱动,放到sudo apt install -y chromium-chromedriver/usr/bin/等系统路径下,确保Selenium能正常调用。
2. pyodbc相关组件
pyodbc需要ODBC驱动连接SQL Server,Ubuntu上需安装微软官方ODBC驱动:
- 添加微软APT源:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list - 安装ODBC驱动及开发工具:
sudo apt update && sudo ACCEPT_EULA=Y apt install -y msodbcsql17 unixodbc-dev
3. 其他潜在依赖
如果应用用到字体、图像处理等系统级库,需根据运行时报错补充安装,但核心依赖为上述两类。
三、能否无需额外安装直接运行?
不可能。PyInstaller仅能打包Python代码及纯Python依赖,无法打包Chrome、ODBC驱动这类系统级二进制组件,因此服务器必须预先安装这些基础组件才能运行应用。
四、替代方案(无需打包,直接运行源码)
若不想用PyInstaller,可直接在服务器部署Python环境运行源码:
- 安装Python3及pip:
sudo apt install -y python3 python3-pip - 安装项目依赖:
pip3 install selenium pyodbc - 上传
main.py及相关文件,直接运行:
这种方式更灵活,适合后续需要修改代码的场景。python3 main.py
内容的提问来源于stack exchange,提问作者Sidath
相关产品推荐
相关产品推荐

