2.3 Forge更新检查器

Forge更新检查器

Forge提供了一个非常轻量的可选升级检查模块。它所做的就是检查更新,然后在主菜单和模组列表的Mods按钮上显示一个小图标,如果任何模组有可用的更新也会显示对应的更新日志。它不能自动下载更新。

 

开始

你(可能)想做的第一件事是指定@Mod标记中的updateJSON参数。这个参数的值应当是一个指向一个包含更新信息的JSON文件的有效URL。这个更新用的JSON可以托管在你的web服务器上,GitHub或者你想托管的任何位置,只要它能够被你模组的用户可靠地访问到就可以。

 

更新所用的JSON的格式

这个JSON文件本身有个相对简单的格式,如下所示:

{
  "homepage": "<homepage/download page for your mod>",
  "<mcversion>": {
    "<modversion>": "<changelog for this version>", 
    // List all versions of your mod for the given Minecraft version, along with their changelogs
    ...
  },
  ...
  "promos": {
    "<mcversion>-latest": "<modversion>",
    // Declare the latest "bleeding-edge" version of your mod for the given Minecraft version
    "<mcversion>-recommended": "<modversion>",
    // Declare the latest "stable" version of your mod for the given Minecraft version
    ...
  }
}

这显然比较易懂,但是有几个需要注意的地方:

  • homepage 下的链接是当模组版本较旧时显示给用户的链接。
  • Forge使用一种内部算法来确认你的模组版本字符串(代表的版本)比另一个“新”。多数版本编号模式应该都是兼容的,但如果你对自己的版本编号模式是否支持比较担忧的话,你可以参考ComparableVersion这个类。强烈建议继续使用 semantic versioning(https://semver.org/)。
  • 变更日志字符串的内容可以用\n实现换行。有人倾向于在这里写一个简短的变动日志,然后留一个能够提供相近更新日志内容的外部链接。
  • 手动输入数据可能会很繁琐。你可以设置你的build.gradle以实现在构建一个正式版本时自动更新这个文件,因为Groovy有原生的JSON解析支持。如何做这个就留给读者作为一个练习。

两个具体的例子是 Charset(https://gist.githubusercontent.com/Meow-J/fe740e287c2881d3bf2341a62a7ce770/raw/bf829cdefc84344d86d1922e2667778112b845b1/update.json) 和 Botania Unofficial(https://gist.githubusercontent.com/Meow-J/1299068c775c2b174632534a18b65fb8/raw/42c578cf2303aa76d8900f5fdc6366122549d2a8/update.json)。

 

获取更新检查结果

你可以借助 ForgeVersion.getResult(ModContainer) 这个方法来获取Forge更新检查器的结果。返回的对象有一个status域,表示版本检查的状态。取值举例:FAILED(版本检查器无法连接到给定的URL),UP_TO_DATE(当前版本等于或高于最新稳定版本),OUTDATED(有一个新的稳定版本),BETA_OUTDATED(有一个新的不稳定版本),BETA(当前版本等于或高于最新测试版本)。如果(检查更新的)请求尚未结束,状态将会为PENDING;在这种情况下(译者注:应该是指开发测试时遇到这种问题),你应当再多试一试,反之,返回的对象将会同时包含目标版本和update.json中指定的任何的变更日志内容。你可以通过 Loader.instance().activeModContainer() 获取自己模组的ModContainer来传递给这个方法,也可以通过 Loader.instance().getIndexedModList().get(<modid>) 这个方法来获取任何模组的ModContainer来传递给这个方法。

 

<think>好的,我现在要解决用户在Windows上安装rasterio时遇到的GDAL配置错误问题。用户遇到的错误信息是“A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable.”,看起来是因为GDAL和rasterio版本不兼容或者GDAL没有正确安装导致的。 首先,我需要回忆一下rasterio的安装要求。rasterio是一个处理地理空间数据的Python库,它依赖于GDAL。在Windows上安装时,通常需要预装GDAL,并且确保版本匹配。用户可能直接通过pip install rasterio尝试安装,但如果没有正确配置GDAL的环境变量,就会出现这个问题。 接下来,我需要考虑常见的解决方法。根据引用[1]和[2]提到的信息,可能需要手动指定GDAL的路径或者版本。用户可能需要先安装GDAL,然后设置环境变量GDAL_CONFIG指向gdal-config的位置,或者设置GDAL_VERSION。不过在Windows上,GDAL通常以二进制形式分发,可能没有gdal-config这个文件,这可能是问题所在。 然后,步骤可能包括:安装合适版本的GDAL,设置环境变量,然后安装rasterio时指定GDAL版本。用户可能还需要使用特定的pip命令,比如使用--config-settings来指定GDAL的位置。另外,可能需要通过第三方网站如Christoph Gohlke的库下载兼容的rasterio和GDAL的whl文件,这样可以避免编译时的依赖问题。 另外,用户可能需要检查Python版本是否与GDAL和rasterio兼容,以及是否安装了必要的Microsoft Visual C++ Redistributable。此外,使用conda环境可能更容易管理这些依赖,因为conda可以自动处理GDAL和rasterio的版本匹配。 现在需要将这些步骤整理成一个清晰的指南,确保用户能逐步操作。同时,要提醒用户注意版本对应关系,例如GDAL 3.x与rasterio的兼容性,以及Python版本是否支持。可能还需要验证环境变量设置是否正确,路径是否包含空格或特殊字符导致的问题。 最后,生成相关问题,帮助用户进一步理解或解决其他潜在问题,比如如何检查GDAL安装是否成功,或者如何处理其他依赖错误。</think>### 解决Windows安装rasterio时的GDAL配置错误 在Windows系统上安装`rasterio`时,若因GDAL配置问题出现报错`A GDAL API version must be specified...`,通常是由于以下原因导致: 1. **GDAL未安装或版本不兼容** 2. **环境变量未正确配置** 3. **安装命令未明确指定GDAL版本或路径** 以下是具体解决步骤: --- #### **步骤1:安装GDAL依赖** 1. **下载GDAL二进制文件** 访问[GIS Internals](https://www.gisinternals.com/),下载与Python版本和系统架构(32/64位)匹配的GDAL稳定版(例如GDAL 3.6.3)。 **注意**:需选择包含`core DLLs`和`Python bindings`的版本。 2. **解压并配置环境变量** - 将解压后的GDAL文件夹(如`C:\gdal`)添加到系统环境变量`Path`中。 - 新增系统变量`GDAL_VERSION`,值为安装的GDAL版本(如`306`对应3.6.x)[^1]。 --- #### **步骤2:安装rasterio** 1. **使用pip指定GDAL版本** 在命令行中运行以下命令,强制指定GDAL版本(需与已安装的GDAL一致): ```bash pip install rasterio --no-cache-dir --config-settings="gdal_version=306" ``` 2. **或通过预编译的whl文件安装** 访问[Christoph Gohlke的非官方Windows库](https://www.lfd.uci.edu/~gohlke/pythonlibs/#rasterio),下载与Python版本和GDAL版本匹配的`.whl`文件(例如`rasterio‑1.3.9‑cp311‑cp311‑win_amd64.whl`),然后通过pip安装: ```bash pip install path\to\rasterio_package.whl ``` --- #### **步骤3:验证安装** ```python import rasterio print(rasterio.__version__) # 应输出版本号,如1.3.9 ``` --- #### **常见问题补充** - **若仍报错“DLL load failed”** 检查是否安装了[Microsoft Visual C++ Redistributable](https://aka.ms/vs/17/release/vc_redist.x64.exe)。 - **使用conda环境** 通过conda可自动解决依赖问题: ```bash conda install -c conda-forge rasterio ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值