python - GCP DataflowRunner 导入错误
问题描述
使用选项 DirectRunner 时代码正在运行。但是在将其切换到 DataflowRunner 时出现导入错误。找不到lxml模块是这个原因。尝试将 setuptools 代码与主代码一起使用时,它仍然无法正常工作(--setup_file setup.py)。
setuptools.setup(
name='lxml',
version='4.2.5',
install_requires=[],
packages= setuptools.find_packages(),
)
错误:ImportError:没有名为 lxml 的模块 [运行“运行查询”时]
有什么帮助/建议可以克服这个错误吗?谢谢。
解决方案
name
你传递给函数的setuptools.setup
是你的包的名字,它的依赖应该在参数中指定install_requires
。我想它适用于,DirectRunner
因为该软件包已安装在您的本地计算机上。
Beam juliaset示例提供了一个示例 setup.py 文件:
REQUIRED_PACKAGES = ['numpy']
setuptools.setup(
name='juliaset', # this is their package name
version='0.0.1',
description='Julia set workflow package.',
install_requires=REQUIRED_PACKAGES,
...)
PyPI 依赖项
如果lxml
是您唯一的依赖项,或者您的所有依赖项都在 PyPI 上,您应该能够使用更简单的 requirements.txt 文件。一般来说,setup.py 方法需要更多的样板文件。
要使用 requirements.txt,请冻结您的依赖项:
pip freeze > requirements.txt
并将 requirements.txt 文件传递到您的管道:
--requirements_file requirements.txt
另请参阅 Beam 文档页面,了解 Python 的各种依赖模式。
推荐阅读
- python - While循环整数输入
- nunit-3.0 - 使用 DotNetCoreTest 运行 Nunit 3 的蛋糕失败
- promise - 关于Promise,这个问题让我很困惑
- nginx - 错误 Nginx 服务器(/etc/nginx/sites-enabled/demo.xx.id:99 中的“位置”指令不允许)
- linux - 在 VMware 中安装嵌入式 RTOS
- python - Sklearn fbeta_score默认平均参数不适用于多类目标变量
- docker - Bitnami Jenkins:在尝试连接到 Docker 守护进程套接字时获得权限被拒绝
- node.js - firebase 基础中的云功能不起作用,snapshot.val() 不是功能?
- apache - htaccess规则重写url后,为什么我无法访问我的页面和查询参数?
- configuration - 用证书连接 Kurento