Python 无法在ML引擎中导入Google云存储库
作为在ML引擎中批量处理一些图像的快速解决方案,我正在使用云存储Python库下载这些图像 不幸的是,当作业发送到ML引擎时,库导入失败,堆栈跟踪如下:Python 无法在ML引擎中导入Google云存储库,python,google-cloud-storage,google-cloud-ml,Python,Google Cloud Storage,Google Cloud Ml,作为在ML引擎中批量处理一些图像的快速解决方案,我正在使用云存储Python库下载这些图像 不幸的是,当作业发送到ML引擎时,库导入失败,堆栈跟踪如下: Traceback(最近一次调用最后一次):文件“/usr/lib/python2.7/runpy.py”,第162行,在运行模块中作为运行主“/uuuuu-main”,fname,loader,pkg-u-name)文件“/usr/lib/python2.7/runpy.py”,第72行,在运行全局文件“/root/.local/lib/py
Traceback(最近一次调用最后一次):文件“/usr/lib/python2.7/runpy.py”,第162行,在运行模块中作为运行主“/uuuuu-main”,fname,loader,pkg-u-name)文件“/usr/lib/python2.7/runpy.py”,第72行,在运行全局文件“/root/.local/lib/python2.7/site-packages/trainer/task.py”第1行,从google.cloud导入存储导入错误:无法导入名称存储
我非常确定该库包含在ML引擎映像中(如果没有,那会很奇怪),因此我在这里不知所措,程序在本地运行良好。容器不包含此包,因为通常使用TensorFlow的模块,该模块与GCS一起工作 两种选择。假设您已经知道如何使用和/或拥有
google.cloud.storage
的代码,您可以将其作为需求添加到setup.py
文件()中,例如:
from setuptools import find_packages
from setuptools import setup
REQUIRED_PACKAGES = ['google-cloud-storage']
setup(
name='trainer',
version='0.1',
install_requires=REQUIRED_PACKAGES,
packages=find_packages(),
include_package_data=True,
description='My trainer application package.'
)
或者,您可以使用,如果您实际上不需要数据的副本,但希望直接读取数据,这一点尤其有用:
import tensorflow as tf
from tensorflow.python.lib.io import file_io
# Copy
file_io.copy("gs://my-bucket/myfiles/*", "/tmp")
# Glob and read
for file in file_io.get_matching_files("gs://my-bucket/myfiles/*"):
with file_io.FileIO(file) as f:
# Do something
最后,请注意,如果您使用的是TensorFlow操作,TensorFlow的读者已经知道如何从GCS读取,因此无需手动操作文件。非常感谢!当我阅读已经安装的运行时依赖项并看到
gcloud 0.18.3
时,我想我把自己弄糊涂了,我假设它是包含存储功能的Python GCP客户端库。