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

如何调用包含依赖的.pyz文件中的指定函数?

调用.pyz文件内函数的正确方法

.pyz是打包了依赖的Python zip可执行文件,你之前用<python path> my_pyz_file.pyz myscript.py的方式无法生效,因为这种写法是把myscript.py作为参数传给.pyz的入口脚本,而非让自定义脚本导入.pyz内的模块。下面是两种可行的解决方法:

方法一:将.pyz添加到模块搜索路径

修改你的自定义脚本,把.pyz文件路径加入Python的模块搜索路径,之后直接导入目标模块即可:

import sys
# 将.pyz文件的绝对/相对路径添加到搜索路径最前面
sys.path.insert(0, "./my_pyz_file.pyz")

# 导入.pyz内的目标模块(注意模块名要和.pyz内的实际模块名一致)
import function_from_pyz

if __name__ == "__main__":
    function_from_pyz.runJob()

运行命令直接执行自定义脚本即可:

python myscript.py

方法二:用importlib动态加载.pyz文件

如果不确定.pyz内的模块名,或者需要更灵活的加载方式,可以用importlib模块直接加载.pyz文件:

import importlib.util
import sys

# 指定.pyz文件的路径
pyz_file_path = "./my_pyz_file.pyz"
# 创建模块规范,第一个参数是你要给模块起的名称(可自定义)
spec = importlib.util.spec_from_file_location("function_from_pyz", pyz_file_path)
# 根据规范创建模块对象
function_from_pyz = importlib.util.module_from_spec(spec)
# 将模块加入sys.modules,确保后续导入正常
sys.modules["function_from_pyz"] = function_from_pyz
# 执行模块加载
spec.loader.exec_module(function_from_pyz)

if __name__ == "__main__":
    function_from_pyz.runJob()

同样用以下命令运行:

python myscript.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:01:13