You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python编译的exe在Windows Server 2016服务器启动崩溃报错求助

解决Windows Server 2016上Python监控应用启动崩溃问题

针对你遇到的RuntimeError: cannot call null pointer pointer from cdata 'int(*)(void *, int)'报错,这是pythonnet加载CLR时的依赖缺失或环境不一致问题,以下是具体解决步骤:

  • 检查并同步.NET Framework版本
    运行命令查看目标服务器的.NET版本:

    reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Version
    

    确保和正常运行的服务器版本一致,若低于4.7.2,升级到该版本或更高——pythonnet对.NET Framework有明确版本要求。

  • 调整PyInstaller打包配置
    打包时需明确指定pythonnet相关的隐藏导入,修改打包命令:

    pyinstaller --hidden-import=clr --hidden-import=pythonnet PIConnectorHealth.py
    

    或者编辑生成的.spec文件,添加:

    hiddenimports=['clr', 'pythonnet']
    

    重新打包后部署到目标服务器。

  • 修复VC++运行时依赖
    目标服务器可能缺少pythonnet所需的VC++ Redistributable运行时库,安装对应版本的VC++运行时(建议VS2019 x86/x64版本),保证依赖完整性。

  • 手动同步pythonnet依赖文件
    从正常运行的服务器上复制pythonnet.pyd、clr_loader.dll等pythonnet相关文件,替换目标服务器应用目录下的对应文件,确保依赖文件版本完全一致。

  • 测试未打包脚本
    在目标服务器上直接运行Python脚本PIConnectorHealth.py,若脚本能正常执行,说明问题出在打包环节,重点优化PyInstaller的打包配置即可。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:20:36