在Google Cloud Datalab上安装GDAL

时间:2018-04-03 10:49:15

标签: installation pip google-cloud-platform gdal google-cloud-datalab

我无法在Google Cloud Datalab上安装GDAL。我跑的时候:

!pip install gdal

我收到以下错误

Collecting gdal
Using cached GDAL-2.2.4.tar.gz
Complete output from command python setup.py egg_info:
running egg_info
creating pip-egg-info/GDAL.egg-info
writing pip-egg-info/GDAL.egg-info/PKG-INFO
writing top-level names to pip-egg-info/GDAL.egg-info/top_level.txt
writing dependency_links to pip-egg-info/GDAL.egg- 
info/dependency_links.txt
writing manifest file 'pip-egg-info/GDAL.egg-info/SOURCES.txt'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-umhRKK/gdal/setup.py", line 342, in <module>
    **extra )
  File "/usr/local/lib/python2.7/dist-packages/setuptools/__init__.py", 
  line 129, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/usr/lib/python2.7/distutils/dist.py", line 953, in 
  run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python2.7/dist-packages/setuptools/command/egg_info.py", line 278, in run
    self.find_sources()
  File "/usr/local/lib/python2.7/dist-packages/setuptools/command/egg_info.py", line 293, in find_sources
    mm.run()
  File "/usr/local/lib/python2.7/dist-packages/setuptools/command/egg_info.py", line 524, in run
    self.add_defaults()
  File "/usr/local/lib/python2.7/dist-packages/setuptools/command/egg_info.py", line 560, in add_defaults
    sdist.add_defaults(self)
  File "/usr/local/lib/python2.7/dist-packages/setuptools/command/py36compat.py", line 36, in add_defaults
    self._add_defaults_ext()
  File "/usr/local/lib/python2.7/dist-packages/setuptools/command/py36compat.py", line 119, in _add_defaults_ext
    build_ext = self.get_finalized_command('build_ext')
  File "/usr/lib/python2.7/distutils/cmd.py", line 312, in get_finalized_command
    cmd_obj.ensure_finalized()
  File "/usr/lib/python2.7/distutils/cmd.py", line 109, in ensure_finalized
    self.finalize_options()
  File "/tmp/pip-build-umhRKK/gdal/setup.py", line 217, in finalize_options
    self.gdaldir = self.get_gdal_config('prefix')
  File "/tmp/pip-build-umhRKK/gdal/setup.py", line 191, in get_gdal_config
    return fetch_config(option)
  File "/tmp/pip-build-umhRKK/gdal/setup.py", line 144, in fetch_config
    raise gdal_config_error, e""")
  File "<string>", line 4, in <module>
__main__.gdal_config_error: [Errno 2] No such file or directory

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-umhRKK/gdal/

同样的事情:

!pip install gdal==2.2

或:

!pip install python-gdal

和我尝试过的其他一些类似的命令。我发现更新设置工具的修复程序在更新之后仍然给我这个问题。 有什么问题?

1 个答案:

答案 0 :(得分:0)

根据how to add a Python library to Cloud Datalab上的Datalab文档,您可以使用三种方法在Cloud Datalab中安装第三方库:

  1. 使用!pip install lib-name。这显然不适合您,即使应用了一些您在环顾四周后找到的故障排除修复程序。
  2. 使用下面# Option 2中的代码指定要在Datalab实例的启动脚本中运行的命令,然后继续重新启动它。
  3. 使用您自己的Docker自定义容器,继承自Datalab Docker容器。我知道这个选项最复杂,但对于需要更灵活定制的软件包,它可能是最合适的选项,例如您遇到问题的gdal
  4. 选项2中使用的脚本:

    #Option 2
    %%bash
    echo "pip install lib-name" >> /content/datalab/.config/startup.sh
    cat /content/datalab/.config/startup.sh