python - 使用 knit 编织时,无法在 RStudio 中使用网状导入 geopandas

标签 python r knitr geopandas reticulate

我正在尝试在 virtualenv 内使用 reticulate 和 Python 编织一个 Rmd 文件。 以下是我的 R 设置 block :

```{r r-setup}
library(reticulate)

venv_path <- "/path/to/venv/"
use_virtualenv(venv_path, required = TRUE)
```

这按预期工作。但是,当我尝试导入 geopandas 时,下一步会中断:

```{python}
import geopandas as gpd
```

回溯如下:

Error in py_module_import... OSError: Could not find lib c or load any variants...

回溯错误指向 shapely 包 from shapely.geometry import shape, Point File。其他 Python 库在 block 内加载没有问题,例如导入操作系统

从这些消息中,我猜测它没有加载 OGR/GDAL 绑定(bind)。但是,我不知道如何解决这个问题。

当我在笔记本内部运行 block 时,

import geopandas 运行没有错误,例如不编织。它也可以在我的项目的 repl_python() shell 中运行。因此,问题似乎主要与针织物和针织有关。

我的 RStudio 版本是:1.1.456。

session_info() 的输出是:

sessionInfo()

R version 3.5.1 (2018-07-02)
Platform: x86_64-apple-darwin17.6.0 (64-bit)
Running under: macOS High Sierra 10.13.6

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib

locale:
[1] en_NZ.UTF-8/en_NZ.UTF-8/en_NZ.UTF-8/C/en_NZ.UTF-8/en_NZ.UTF-8

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

other attached packages:
[1] reticulate_1.10 stringr_1.3.1   dplyr_0.7.6     ggplot2_3.0.0  

loaded via a namespace (and not attached):
[1] Rcpp_0.12.18     pillar_1.3.0     compiler_3.5.1   plyr_1.8.4      
[5] bindr_0.1.1      tools_3.5.1      digest_0.6.17    packrat_0.4.9-3 
[9] jsonlite_1.5     evaluate_0.11    tibble_1.4.2     gtable_0.2.0    
[13] lattice_0.20-35  pkgconfig_2.0.2  rlang_0.2.2      Matrix_1.2-14   
[17] yaml_2.2.0       bindrcpp_0.2.2   withr_2.1.2      knitr_1.20      
[21] rprojroot_1.3-2  grid_3.5.1       tidyselect_0.2.4 glue_1.3.0      
[25] R6_2.2.2         rmarkdown_1.10   purrr_0.2.5      magrittr_1.5    
[29] scales_1.0.0     backports_1.1.2  htmltools_0.3.6  assertthat_0.2.0
[33] colorspace_1.3-2 stringi_1.2.4    lazyeval_0.2.1   munsell_0.5.0   
[37] crayon_1.3.4

最佳答案

我设法通过删除指向我的brew安装的R库的“DYLD_FALLBACK_LIBRARY_PATH”来解决这个问题。 解决方案在一个 python block 中,如下所示:

```{python}
import os
FALLBACK_PATH = {"DYLD_FALLBACK_LIBRARY_PATH" : "/usr/local/Cellar/r/3.5.1/lib/R/lib"}
del os.environ["DYLD_FALLBACK_LIBRARY_PATH"]

import geopandas

# Reset the environmental variable.
os.environ.update(FALLBACK_PATH)
```

我不确定这是否是最干净的解决方案,但它确实有效。也不确定这是否只是 Mac OSX 的问题。

关于python - 使用 knit 编织时,无法在 RStudio 中使用网状导入 geopandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52306635/

相关文章:

python - 使用特定项目的值向 Pandas 数据框添加新列?

r - 在 Shiny 的服务器 aws my-app 上部署本地应用程序

r - lubridate:与时区不一致的行为

r - 在 Rmarkdown HTML 输出中抑制来自 RStan 的正在运行的消息

python - 将 Scrapy 的输出格式化为 XML

python - Tensorflow qint8、quint8、qint32、qint16 和 quint16 数据类型是什么?

r-markdown - 注释掉 R Markdown 中的文本(Rmd 文件)

r - Travis-CI:在 loadVignetteBuilder 中未找到 Knit

Python PyQt 隐藏 QToolbutton 菜单箭头

r - 使用 as.yearmon 时 Pivot Wider 导致问题