【Batch Job】Batch Job中执行一段Python代码,遇见Failure Exit Code

简介: 【Batch Job】Batch Job中执行一段Python代码,遇见Failure Exit Code

问题描述

在Azure Batch Job中执行一段Python代码,遇见Failure Exit Code。

print("start mian.py")
if __name__ =="__main__":
    print("__main__")

就算只使用一个简单的 print 方法,也是出现Failure Exit Code错误。

进一步在Batch Job的 stderr 日志中,发现了错误消息:

Traceback (most recent call last):
  File "site-packages\PyInstaller\loader\rthooks\pyi_rth_win32comgenpy.py", line
49, in <module>
  File "c:\hostedtoolcache\windows\python\3.7.9\x64\lib\site-packages\PyInstalle
r\loader\pyimod03_importers.py", line 623, in exec_module
  File "site-packages\win32com\__init__.py", line 8, in <module>
  File "c:\hostedtoolcache\windows\python\3.7.9\x64\lib\site-packages\PyInstalle
r\loader\pyimod03_importers.py", line 623, in exec_module
  File "site-packages\pythoncom.py", line 2, in <module>
  File "c:\hostedtoolcache\windows\python\3.7.9\x64\lib\site-packages\PyInstalle
r\loader\pyimod03_importers.py", line 623, in exec_module
  File "site-packages\win32\lib\pywintypes.py", line 126, in <module>
  File "site-packages\win32\lib\pywintypes.py", line 116, in __import_pywin32_sy
stem_module__
ImportError: DLL load failed: The specified module could not be found.
[2504] Failed to execute script pyi_rth_win32comgenpy

问题解答

首先,出现 Failure Exit Code 表示Batch Job已经开始执行,但是在运行脚本或者执行文件中,出现了异常导致Job退出 Exit with 1 (正常的退出code 为 Exit code 0)。而本次错误中的异常为 “ DLL load failed: The specified module could not be found.”。缺少Python代码的可执行环境。

 

因为Batch Job中执行的文件是通过PyInstaller把python code打包为一个main.exe可执行文件,这样在没有预先安装Python runtime的环境中,也可以执行Python代码。所以需要研究 PyInstaller 在打包时,是否没有包含Python Runtime文件。

 

参考资料

ImportError: DLL load failed while importing win32api: The specified procedure could not be found. [25960] Failed to execute script pyi_rth_win32comgenpy : https://github.com/mhammond/pywin32/issues/1791

python - Failed to execute script pyi_rth_win32comgenpy after packing with pyinstaller : https://stackoverflow.com/questions/65587443/failed-to-execute-script-pyi-rth-win32comgenpy-after-packing-with-pyinstaller

added --hidden-import "pywin32" to the pyinstaller command, and it worked!

 

相关文章
|
3月前
|
开发框架 数据建模 中间件
Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器是那些静悄悄的幕后英雄。它们不张扬,却能默默地为函数或类增添强大的功能。本文将带你了解装饰器的魅力所在,从基础概念到实际应用,我们一步步揭开装饰器的神秘面纱。准备好了吗?让我们开始这段简洁而富有启发性的旅程吧!
68 6
|
4月前
|
存储 缓存 测试技术
Python中的装饰器:功能增强与代码复用的利器
在Python编程中,装饰器是一种强大而灵活的工具,它允许开发者以简洁优雅的方式增强函数或方法的功能。本文将深入探讨装饰器的定义、工作原理、应用场景以及如何自定义装饰器。通过实例演示,我们将展示装饰器如何在不修改原有代码的基础上添加新的行为,从而提高代码的可读性、可维护性和复用性。此外,我们还将讨论装饰器在实际应用中的一些最佳实践和潜在陷阱。
|
17天前
|
数据采集 供应链 API
实战指南:通过1688开放平台API获取商品详情数据(附Python代码及避坑指南)
1688作为国内最大的B2B供应链平台,其API为企业提供合法合规的JSON数据源,直接获取批发价、SKU库存等核心数据。相比爬虫方案,官方API避免了反爬严格、数据缺失和法律风险等问题。企业接入1688商品API需完成资质认证、创建应用、签名机制解析及调用接口四步。应用场景包括智能采购系统、供应商评估模型和跨境选品分析。提供高频问题解决方案及安全合规实践,确保数据安全与合法使用。立即访问1688开放平台,解锁B2B数据宝藏!
|
18天前
|
API 开发工具 Python
【Azure Developer】编写Python SDK代码实现从China Azure中VM Disk中创建磁盘快照Snapshot
本文介绍如何使用Python SDK为中国区微软云(China Azure)中的虚拟机磁盘创建快照。通过Azure Python SDK的Snapshot Class,指定`location`和`creation_data`参数,使用`Copy`选项从现有磁盘创建快照。代码示例展示了如何配置Default Azure Credential,并设置特定于中国区Azure的`base_url`和`credential_scopes`。参考资料包括官方文档和相关API说明。
|
2月前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
87 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
3月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
89 33
|
4月前
|
人工智能 数据挖掘 Python
Python编程基础:从零开始的代码旅程
【10月更文挑战第41天】在这篇文章中,我们将一起探索Python编程的世界。无论你是编程新手还是希望复习基础知识,本文都将是你的理想之选。我们将从最基础的语法讲起,逐步深入到更复杂的主题。文章将通过实例和练习,让你在实践中学习和理解Python编程。让我们一起开启这段代码之旅吧!
|
3月前
|
JavaScript API C#
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
61 10
|
3月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
127 8
|
3月前
|
API Python
【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
分享一段Python代码调用Graph API创建用户的示例
77 11

热门文章

最新文章