python - 为 python 安装 GDAL 时遇到问题

标签 python pip gdal

首先让我说一下,我已经搜索过这个问题的帮助并浏览了我发现的许多线程,但没有一个有效,或者我无法理解他们在说什么。

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

我能跑

pip install --no-install GDAL

但后来我被指示“进入 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,它只是告诉我我的计算机上已经有更新的版本。

最佳答案

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

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

您需要留在这个 shell 窗口内。即 th 提示应该像这样 (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。

关于python - 为 python 安装 GDAL 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34408699/

相关文章:

python - 在Python中从URL中提取GIF图像(只返回字符串?)

python - 无法在 virtualenv 中安装 mySQL-python

python - 在 OSX 上更新 Python 和包

gdal - 如何使用 GDAL (gdalwarp/gdal_translate) 设置 GeoTIFF 文件的 "band description"选项/标签

Python:使用filter()生成素数列表的代码中生成器和过滤器如何工作

python - 使用输出 "SMEMBERS"命令作为redis中 "MGET"的输入?

r - 用于 rgdal 的 Mac postgres/postgis 驱动程序

gdal - 使用 ECW 支持安装 GDAL

python - crontab 运行一个运行多个 python 脚本的 bash 脚本

python-3.x - 为 python 安装 selenium 时遇到问题