问题
你想安装Cartopy在一个集群和你收到ManagedLibraryInstallFailed错误消息。
. lang。RuntimeException: ManagedLibraryInstallFailed: org.apache.spark。SparkException:进程列表(/砖/ python / bin /皮普,安装,cartopy = = 0.17.0——disable-pip-version-check)退出代码1。错误:命令错误与退出状态1:命令:/砖/ python3 / bin / python3.7 /砖/ python3 / lib / python3.7 /网站/脉冲/ _vendor / pep517 / _in_process。py get_requires_for_build_wheel / tmp / tmpjoliwaky慢性消耗病:/ tmp / pip-install-t324easa / cartopy完成输出(3行):设置。py: 171: UserWarning:无法确定GEOS版本。确保您安装了3.3.3或晚,或安装可能会失败。'。' . join (GEOS_MIN_VERSION str v (v)),)项目4.9.0必须安装。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -错误:命令与退出状态错误1:/砖/ python3 / bin / python3.7 /砖/ python3 / lib / python3.7 /网站/脉冲/ _vendor / pep517 / _in_process。py get_requires_for_build_wheel / tmp / tmpjoliwaky检查日志的命令输出。图书馆:PythonPyPiPkgId (cartopy,一些(0.17.0),列表()),isSharedLibrary = false
导致
Cartopy有依赖libgeos3.3.3和上方和libproj4.9.0。如果libgeos和libproj不安装,Cartopy无法安装。
解决方案
配置一个集群级init脚本(AWS|Azure|GCP)自动安装Cartopy和所需的依赖项。
- 创建基础目录存储中的init脚本,如果基础目录不存在。在这里,使用dbfs: /砖/ <目录>作为一个例子。
% sh dbutils.fs.mkdirs (“dbfs: /砖/ <目录> /”)
- 创建脚本并将其保存到一个文件。
% sh dbutils.fs.put (“dbfs: /砖/ <目录> / cartopy。sh”、“”“# !/bin/bash sudo apt-get安装libgeos + + - dev - y sudo apt-get安装libproj-dev - y /砖/ python / bin / pip安装Cartopy”“”,真的)
- 检查脚本的存在。
% python显示器(dbutils.fs.ls (“dbfs: /砖/ <目录> / cartopy.sh”))
- 在集群配置页面,单击高级选项切换。
- 在页面的底部,单击Init脚本选项卡。
- 在目的地下拉,选择DBFS,提供这个脚本文件路径,然后单击添加。
- 重新启动集群。