You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下R安装Rpostal时缺失libpostal C库的解决求助

Windows环境下Rpostal运行报错'~/libpostal/src/libpostal' not found的解决方法

问题背景

我用R从GitHub安装了Rpostal库,执行代码:

# 从GitHub安装
devtools::install_github("datactuariat/Rpostal")
library(Rpostal)

运行演示命令时:

# 地址扩展
postal_expand("Quatre vignt douze Ave des Champs-Élysées")

出现错误:

Loading required package: jsonlite
Error in system(req, intern = TRUE) : 
  '~/libpostal/src/libpostal' not found

推测是缺少libpostal C库,但找不到Windows下的安装说明,附session信息:

> sessionInfo()
R version 4.1.3 (2022-03-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22000)

Matrix products: default

locale:
[1] LC_COLLATE=English_Canada.1252  LC_CTYPE=English_Canada.1252    LC_MONETARY=English_Canada.1252
[4] LC_NUMERIC=C                    LC_TIME=English_Canada.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] jsonlite_1.8.0     Rpostal_0.0.0.9000

loaded via a namespace (and not attached):
 [1] compiler_4.1.3    prettyunits_1.1.1 remotes_2.4.2     tools_4.1.3       testthat_3.1.4    digest_0.6.29    
 [7] pkgbuild_1.3.1    pkgload_1.2.4     evaluate_0.15     memoise_2.0.1     lifecycle_1.0.1   rlang_1.0.2      
[13] cli_3.3.0         rstudioapi_0.13   curl_4.3.2        yaml_2.3.5        xfun_0.30         fastmap_1.1.0    
[19] withr_2.5.0       knitr_1.39        desc_1.4.1        fs_1.5.2          devtools_2.4.3    rprojroot_2.0.3  
[25] glue_1.6.2        R6_2.5.1          processx_3.5.3    rmarkdown_2.14    sessioninfo_1.2.2 callr_3.7.0      
[31] purrr_0.3.4       magrittr_2.0.2    ps_1.6.0          ellipsis_0.3.2    htmltools_0.5.2   usethis_2.1.6    
[37] tinytex_0.40      cachem_1.0.6      crayon_1.5.1      brio_1.1.3   

问题原因

Rpostal是libpostal的R包装器,必须先在系统中编译安装底层的libpostal C库,否则Rpostal无法找到依赖的二进制文件,触发上述错误。

解决步骤

1. 安装编译工具

  • 安装对应R版本的Rtools:你的R是4.1.3,需安装Rtools40,安装时务必勾选"Add Rtools to system PATH"。
  • 打开Rtools自带的MSYS2终端:在开始菜单找到"Rtools 40"文件夹,打开"MSYS2 MinGW 64-bit"终端。

2. 编译安装libpostal

在MSYS2终端依次执行以下命令:

# 更新包索引
pacman -Syu

# 安装编译依赖
pacman -S base-devel gcc git make curl autoconf automake libtool pkg-config

# 克隆libpostal源码
git clone https://github.com/openvenues/libpostal.git
cd libpostal

# 初始化配置脚本
./bootstrap.sh

# 配置安装路径(这里指定安装到C盘根目录的libpostal文件夹,可自行修改)
./configure --prefix=/c/libpostal --datadir=/c/libpostal/data

# 编译并安装(此步骤耗时久,需等待语言数据包下载完成)
make -j4
make install

3. 配置系统环境变量

  • 打开Windows系统属性的环境变量设置:右键"此电脑" → "属性" → "高级系统设置" → "环境变量"。
  • 添加系统变量:
    • 变量名:LIBPOSTAL_PATH,变量值:C:\libpostal(对应上述configure命令的--prefix路径)
    • 将C:\libpostal\bin添加到Path系统变量中。

4. 重新安装Rpostal

关闭并重启R/RStudio,执行代码重新安装:

devtools::install_github("datactuariat/Rpostal", force = TRUE)
library(Rpostal)

5. 验证功能

再次运行演示命令:

postal_expand("Quatre vignt douze Ave des Champs-Élysées")

此时应该能正常返回地址扩展结果。

内容的提问来源于stack exchange,提问作者stats_noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:05:35