【发布时间】:2025-11-28 06:05:02
【问题描述】:
我在部署 Cloud Function 时遇到错误。
Deployment failure:
Function load error: Code in file main.py can't be loaded.
Did you list all required modules in requirements.txt?
Detailed stack trace: Traceback (most recent call last):
File "/env/local/lib/python3.7/site-packages/google/cloud/functions/worker.py", line 256, in check_or_load_user_function
_function_handler.load_user_function()
File "/env/local/lib/python3.7/site-packages/google/cloud/functions/worker.py", line 166, in load_user_function
spec.loader.exec_module(main)
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/user_code/main.py", line 2, in <module>
from bs4 import BeautifulSoup
ModuleNotFoundError: No module named 'bs4'
这是我打包的 zip 结构的样子:
.
├── main.py
└── requirements.txt
这就是我的 requirements.txt 的样子:
beautifulsoup4==4.7.1
boto3==1.9.75
botocore==1.12.75
cachetools==3.0.0
certifi==2018.11.29
chardet==3.0.4
docutils==0.14
google-api-core==1.7.0
google-auth==1.6.2
google-cloud-core==0.29.1
google-cloud-datastore==1.7.3
google-resumable-media==0.3.2
googleapis-common-protos==1.5.5
grpcio==1.17.1
idna==2.8
jmespath==0.9.3
protobuf==3.6.1
pyasn1==0.4.5
pyasn1-modules==0.2.3
python-dateutil==2.7.5
pytz==2018.9
requests==2.21.0
rsa==4.0
s3transfer==0.1.13
six==1.12.0
soupsieve==1.6.2
urllib3==1.24.1
这就是我在main.py 中导入bs4 模块的方式:
from bs4 import BeautifulSoup
import requests
from datetime import datetime
import boto3
import re
根据documentation,requirements.txt 文件必须与包含您的功能代码的 main.py 文件位于同一目录中。你可以看到它是。
请注意,这在我的本地系统上运行良好。
附加到函数的服务帐户具有以下角色:
Cloud Datastore User
Storage Admin
当我从控制台转到 Cloud Functions UI 时。我可以看到 main.py 和 requirements.txt 都在source 选项卡中显示了正确的内容。
我在这里错过了什么?
更新
找出问题所在。如果我在 requirements.txt 文件中提到beautifulsoup4==4.7.1,它会失败。但是,如果我没有在其中指定版本号,它就可以工作。 beautifulsoup4
不知道为什么。有什么想法吗?
【问题讨论】:
-
我无法重现
beautifulsoup4==4.7.1的部署问题,是否有可能您在部署之前没有使用添加的依赖项保存文件? -
没有。我对其进行了验证并多次手动编辑了 requirements.txt 文件。我正在使用 python 3.7 环境。可能是这个问题?
-
抱歉,即使使用您的确切
requirements.txt文件,我也无法复制它。我也在使用 Python 3.7 环境。 -
我正在使用
lxml(例如BeautifulSoup(body, "lxml")),而我的CF(云功能)正在默默地失败。在我将lxml添加到requirements.txt之后,CF 又开始工作了。
标签: python beautifulsoup google-cloud-platform google-cloud-functions