记录下解决Python在windows 2008 Server 无法启动

这这篇主要是记录整理下解决过程,方便回顾,整个过程还是花了点时间,经历了多种方案尝试才解决,当然有借助AI尝试解决。

事情是这样的,开发了一个python语言的fastapi项目,在本地环境运行一切正常,由于我本地环境十分充足,参考https://blog.csdn.net/u014650759/article/details/129443135

进行了多个python版本的安装,运行完全没问题,但担心部署到服务器后会有点问题。

这里我没有用docker和安装MiniConda,主要考虑到服务器资源比本地紧张,服务器本身就有python旧版本,不想安装太多版本,也不想安装docker增加服务器资源消耗。于是复用python版本

python 复制代码
# 在服务器上执行
cd /path/to/ocr-service
pip install -r requirements.txt
python app.py

但是执行会报错:

bash 复制代码
PS C:\MySpace\ocr-service> python app.py
Traceback (most recent call last):
File "app.py", line 13, in <module>
from ocr_engine import OcrEngine
File "C:\MySpace\ocr-service\ocr_engine.py", line 8, in <module>
import cv2
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\cv2\__init__.py", line 181, in <
module>
bootstrap()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\cv2\__init__.py", line 153, in b
ootstrap
native_module = importlib.import_module("cv2")
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\importlib\__init__.py", line 127, in import_mo
dule
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed while importing cv2: 找不到指定的模块。
PS C:\MySpace\ocr-service>

明显是环境问题,于是进行了方案一:换用 headless 版 OpenCV(无需 VC++)

bash 复制代码
# 先卸载带 GUI 的版本
pip uninstall opencv-python -y
# 安装无 GUI 版本
pip install opencv-python-headless

无效,于是采用方案二:用项目自带的虚拟环境,也就是将本地正常运行的venv 文件夹上传

bash 复制代码
# 服务器上激活虚拟环境
.\venv\Scripts\activate
python app.py

还是不行,经AI提示可能是版本较高导致,于是采用方案三:用老版本的OpenCV 版本

bash 复制代码
pip uninstall opencv-python -y
pip install opencv-python==4.5.5.64 --no-cache-dir

还是无效,那么可以确认多半是系统环境的原因导致了,这里AI提供了一个很有意思的解决方案,就是安装 Desktop Experience(媒体功能包):

bash 复制代码
# 以管理员运行 PowerShell
Import-Module ServerManager
Add-WindowsFeature Desktop-Experience

安装完成后 重启服务器 ,终于问题解决了,通过python app.py指令运行起来了。如果不行可以再试:

bash 复制代码
python -c "import cv2"

总结,系统环境的处理,通过安装 Desktop Experience得以解决,这是 Windows Server 2008 R2 运行 OpenCV 最常见的缺失组件。

相关推荐
2401_885885043 分钟前
巴林语音通知接口如何对接?系统告警语音API接入教程
android·前端·网络·python·语音识别
H.莓飛13 分钟前
【数据结构】排序总结与规模实测
linux·服务器·开发语言·数据结构·visual studio·1024程序员节
2501_9151063214 分钟前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程
执假以为真26 分钟前
Python内存分析器memray的简单介绍
python
会编程的吕洞宾29 分钟前
RAG检索质量怎么评估?3个指标+LLM裁判实战
java·开发语言·人工智能·后端
西柚不烦恼33 分钟前
Windows 本地部署私有 AI 全攻略:纯 CPU 环境(Ollama + Open WebUI)
人工智能·windows
FLJwu35 分钟前
运动相机采购实战|第四篇(终章):一张清单走完选型全流程,把风险拦在源头
c语言·开发语言·数码相机·运动相机·oem 量产
收纳过往35 分钟前
数据库加索引的时机:慢查询日志说话
android·开发语言·数据库·python·低代码·rxjava
少年的范儿39 分钟前
Windows 安装 Node.js 教程:nvm 版本管理 + pnpm 安装配置
windows·npm·node.js
小鹿学程序1 小时前
市赛python学习
python