【问题标题】:Having trouble installing GDAL for python为 python 安装 GDAL 时遇到问题
【发布时间】:2015-12-22 04:58:52
【问题描述】:

首先让我说我已经寻求帮助这个问题并经历了我发现的无数线程,但没有一个有效,或者我无法理解他们在说什么。

一旦出现这样的线程:Python GDAL package missing header file when installing via pip

我可以跑了

pip install --no-install GDAL

但后来我被指示“cd 进入 ENV/build/GDAL”。我知道 cd 是什么意思,但我不知道这个 /ENV/build/GDAL 目录的位置,并且在帖子或它引用的帖子中没有关于它的更多信息。

核心问题只是我想安装 GDAL 以在 Python 中使用。我试过了

pip install GDAL,但输出失败:

    Collecting GDAL
  Using cached GDAL-2.0.1.tar.gz
Installing collected packages: GDAL
  Running setup.py install for GDAL
    Complete output from command c:\users\isaac\appdata\local\programs\python\python35-32\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\Isaac\\AppData\\Local\\Temp\\pip-build-4kmkv1_4\\GDAL\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\Isaac\AppData\Local\Temp\pip-fxko2gfx-record\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.5
    copying gdal.py -> build\lib.win32-3.5
    copying ogr.py -> build\lib.win32-3.5
    copying osr.py -> build\lib.win32-3.5
    copying gdalconst.py -> build\lib.win32-3.5
    creating build\lib.win32-3.5\osgeo
    copying osgeo\gdal.py -> build\lib.win32-3.5\osgeo
    copying osgeo\gdalconst.py -> build\lib.win32-3.5\osgeo
    copying osgeo\gdalnumeric.py -> build\lib.win32-3.5\osgeo
    copying osgeo\gdal_array.py -> build\lib.win32-3.5\osgeo
    copying osgeo\ogr.py -> build\lib.win32-3.5\osgeo
    copying osgeo\osr.py -> build\lib.win32-3.5\osgeo
    copying osgeo\__init__.py -> build\lib.win32-3.5\osgeo
    Fixing build\lib.win32-3.5\gdal.py build\lib.win32-3.5\ogr.py build\lib.win32-3.5\osr.py build\lib.win32-3.5\gdalconst.py build\lib.win32-3.5\osgeo\gdal.py build\lib.win32-3.5\osgeo\gdalconst.py build\lib.win32-3.5\osgeo\gdalnumeric.py build\lib.win32-3.5\osgeo\gdal_array.py build\lib.win32-3.5\osgeo\ogr.py build\lib.win32-3.5\osgeo\osr.py build\lib.win32-3.5\osgeo\__init__.py
    Skipping optional fixer: ws_comma
    Fixing build\lib.win32-3.5\gdal.py build\lib.win32-3.5\ogr.py build\lib.win32-3.5\osr.py build\lib.win32-3.5\gdalconst.py build\lib.win32-3.5\osgeo\gdal.py build\lib.win32-3.5\osgeo\gdalconst.py build\lib.win32-3.5\osgeo\gdalnumeric.py build\lib.win32-3.5\osgeo\gdal_array.py build\lib.win32-3.5\osgeo\ogr.py build\lib.win32-3.5\osgeo\osr.py build\lib.win32-3.5\osgeo\__init__.py
    Skipping optional fixer: ws_comma
    running build_ext
    building 'osgeo._gdal' extension
    error: [WinError 2] The system cannot find the file specified

Command "c:\users\isaac\appdata\local\programs\python\python35-32\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\Isaac\\AppData\\Local\\Temp\\pip-build-07o7k41s\\gdal\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\Isaac\AppData\Local\Temp\pip-640gw1ah-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\Isaac\AppData\Local\Temp\pip-build-07o7k41s\gdal

有人可以帮我解决这个问题吗?我完全迷失了,不知道该怎么办。

我想知道是否可能是因为我的 python 安装在一个有趣的地方?它安装在 C:\Users\Isaac\AppData\Local\Programs\Python\Python35-32\,这是我安装 PyCharm 时放置的位置,但该文件夹和里面的 /Scripts/ 文件夹在我的 PATH 中。

编辑:经过更多研究后,我想知道是不是因为我使用的是 Python 3.5?我会尝试回滚到 Python 3.4,看看它是否有任何改变

编辑 2:不,不走运,它仍然失败并告诉我

error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)

我尝试安装 Microsoft Visual C++ 10.0,但它只是告诉我,我的计算机上已经有一个更新的版本。

【问题讨论】:

标签: python pip gdal


【解决方案1】:

安装此类库的最简单方法可能是conda。以用户身份获取并安装 Miniconda,而不是 root。现在,创建一个新环境并将gdal 安装到其中:

conda create -n gdal_test python=3.5
activate gdal_test
conda install gdal

你需要留在这个 shell 窗口内。即提示应该像这样(gdal_test)。启动 Python:

python
>>> import gdal

注意:在 Linux 和 Mac OS X 上使用 source activate gdal_test

要了解可用的gdal 版本,请键入:

conda search gdal

这样的输出:

gdal

      ....

               2.0.0               np110py34_0  defaults

表示gdal 2.0.0 适用于 Python 3.4,需要 NumPy 1.10。

【讨论】:

  • 以这种方式安装 gdal 后可能需要 conda upgrade numpy。在我的 Windows 安装中,它降级了 numpy。
  • @user1269942 创建新环境时不应降级,因为尚未安装 NumPy(在此环境中)。
  • 好吧,我明白了……很酷。我想无论如何我总是安装 sklearn/numpy 等。环境...听起来很适合让其他人重现您的结果。
  • 好吧,我不明白。我完成了所有步骤,然后尝试导入 gdal(在同一个 cmd 窗口中),它仍然显示“没有名为 gdal 的模块”。另外,我是否将 gdal 安装到特定环境?如何从我的 IDE 访问此环境?我只希望它默认安装。这是一个全新的python安装吗?我很困惑。
  • 这一行 2.0.0 np110py34_0 defaults 表示您可以将 Python 3.4 conda create -n gdal_test python=3.4 与 NumPy 1.10(将自动安装)和 gdal 2.0.0 一起使用。
【解决方案2】:

在 Windows 上安装 GDAL 最简单的方法是使用预构建的二进制文件,除非您有特殊需要需要从源代码构建 GDAL。除了conda,正如@Mike Müller 所提到的,GDAL Windows 二进制文件(带有 Python 绑定)还有三个常见的来源:

【讨论】:

  • 使用 Gohlke Pythonlibs 中的 pip install GDAL-2.2.4-cp36-cp36m-win_amd64.whlPython 3.6.5 上为我工作。谢谢:D
  • @emi 我使用的是 Python 3.6.5 64 位,无法安装 GDAL。你能详细说明你采取的步骤吗?
  • @akinuri 我只是在 Windows 10 下的 cmd 上运行了pip install GDAL-2.2.4-cp36-cp36m-win_amd64.whl。当然,您必须先下载 .whl 文件并制作确保您与 .whl 处于同一路径;您可以从this link 下载该文件。你有什么错误?
  • @emi 见my question。虽然我设法安装了GDAL,但我无法使用gdal_translate。我收到一条错误消息,提示“无法加载模块”(可能缺少 dll:ogr_FileGDB)
  • @akinuri 抱歉,我不知道你的代码发生了什么;我没有使用GDAL的经验。我只是简单地执行了一个复制和粘贴代码,它就成功执行了。也许您正在尝试执行旧代码?也许如果您在代码执行中不使用 gdal_translate 库?
【解决方案3】:

要在 Windows 上安装 GDAL,您需要按照以下步骤操作:-

  1. 您需要使用链接https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal 安装GDAL Wheel 文件。访问此链接后,下载名为“GDAL‑3.0.4‑cp37‑cp37m‑win32.whl”的文件,因为它对我有用,然后使用命令“pip install c:\Users........\ GDAL‑3.0.4‑cp37‑cp37m‑win32.whl" 以成功安装 GDAL,这是 Geopandas 的要求。

注意:如果上述轮文件不适合您,请尝试使用备用轮文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-23
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    相关资源
    最近更新 更多