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

从Artifact Registry安装到Cloud Function的Python包无法运行:语法错误问题排查

问题根源与解决办法

嘿,这个错误和Artifact Registry的权限、包是否安装完全无关——就是Python基础语法的问题!

你看,Python里的模块/包名是不允许包含连字符(-)的,因为代码里的test-package会被Python解释器当成test减package的运算表达式,这当然是无效语法,直接触发SyntaxError。

推荐解决方案:重命名你的Python包

这是最规范、最省心的做法,符合Python社区的命名惯例(用下划线_替代连字符):

  1. 重新上传包到Artifact Registry,把包名改成test_package
  2. 修改你的代码和依赖文件:
    • main.py里的导入语句改成:
      import test_package.add as a
      
    • requirements.txt里的依赖声明改成:
      --extra-index-url https://europe-west2-python.pkg.dev/<<PROJECT ID>>/innovation/simple
      test_package
      

临时应急方案:用importlib动态导入

如果暂时没法修改包名,可以用Python的importlib模块绕过语法限制,修改main.py的导入部分:

import importlib
# 动态导入带连字符的包模块
a = importlib.import_module('test-package.add')

不过这个方法不符合Python编码规范,后续维护容易出问题,所以优先推荐重命名包的方案。

另外补充下:你关于同一项目Cloud Function自动获得Artifact Registry权限的判断是对的,这次的问题和权限、包安装完全不沾边,就是语法踩坑了😉

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 20:07:33