【问题标题】:Python won't import correct version of GDALPython 不会导入正确版本的 GDAL
【发布时间】:2015-06-27 03:03:08
【问题描述】:

我刚刚使用自制软件更新了我的 GDAL 版本。我使用的是 GDAL 1.11 版,它无法读取 .grd 文件。

import gdal
import matplotlib.pyplot as plt
from colormap import Colormap

quant = gdal.Open('.../pct1/pct1.grd')

ERROR 4: `/Users/Nate/Documents/CSU/DroughtNet/WebApps/WorldClim_ShinyApp/data/pct1/pct1.grd' not recognised as a supported file format.

我使用 Homebrew 将我的 GDAL 版本更新到 1.9 以查看是否可以解决问题,并且 GDAL 确实安装成功。但是,我无法让 Python 导入适当的 GDAL 版本,它仍然导入 1.11 版本。

我尝试编辑 sys.path 文件,将当前的 GDAL 框架放在前面,但没有这样做。 Homebrew 安装说要运行

mkdir -p /Users/Nate/Library/Python/2.7/lib/python/site-packages
echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/Nate/Library/Python/2.7/lib/python/site-packages/homebrew.pth

我做了,但也没有用。可能是因为我的 Python 不是从 /Users/Nate/Library/Python/ 运行,而是来自不同的地方。关于如何让 Python 识别最新的 GDAL 版本有什么建议吗?

更新

根据 Matthew 的评论,我能够加载正确版本的 GDAL (1.9)。但是,它仍然不会读取我的 .grd 文件。是否需要添加扩展才能读取这些文件?

【问题讨论】:

    标签: python python-2.7 gdal


    【解决方案1】:

    这听起来像是虚拟环境的工作。我将从您提到的环境中创建一个隔离环境(使用 virtualenv),并尝试使用该 Python 环境导入 GDAL。这样,它将有一条新路径,您可以尝试导入它。

    如果您不想使用虚拟环境,则应仔细检查以确保您正在导入正确的 GDAL 版本。如果 1.9 是在单独的地方编写的,而不是覆盖 1.11,您的脚本可能会导入旧的脚本

    至于调试步骤:

    1. 尝试在每次运行脚本时打印出 Python 路径
    2. 每次运行打印出 GDAL 的版本
    3. 尝试摆弄检查模块 (documentation),看看您从哪里导入 GDAL,看看是否可以从那里确定任何内容

    【讨论】:

    • 我的 GDAL 安装在 /Library/Frameworks/GDAL.framework/Versions/ 中,每个版本都有不同的文件夹,1.10、1.11、1.9。当我运行 import gdal, gdal.__file__ 时,它来自 /Library/Frameworks/GDAL.framework/Versions/1.11/Python/2.7/site-packages。
    • 当我运行 import gdal, gdal.__file__ 时,它来自 /Library/Frameworks/GDAL.framework/Versions/1.11/Python/2.7/site-packages。我检查了我的 sys.path,sys.path 中的第三个文件夹就是同一个文件夹。我修改了我的 sitecustomize.py 文件,以便在启动时将 1.9 文件夹插入其中,这很有效。谢谢!顺便说一句,您是否知道永久修改 sys.path 以便我可以删除 1.11 路径的方法?
    • 我相信您必须设置系统的环境变量。在 Windows 上,您可以在 cmd.exe 中使用“set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib”命令([SO answer here])(stackoverflow.com/a/3701730/3748574)或通过 Windows GUI 使用 these instructions 进行操作跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多