使用 knitr 编织时无法在 RStudio 中使用网状导入 geopandas
Cannot import geopandas using reticulate in RStudio when knitting with knitr
我正在尝试在 virtualenv 中使用 reticulate 和 Python 编织一个 Rmd 文件。
以下是我的 R 设置块:
```{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 库在块内加载没有问题,例如import os
。
根据这些消息,我猜测它没有加载 OGR/GDAL 绑定。但是,我不确定如何解决这个问题。
import geopandas
运行s 当我 运行 笔记本内部的块时没有错误,例如不是编织。它也适用于我项目的 repl_python()
shell。所以这个问题似乎主要与 knitr 和 knitting 有关。
我的 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 块中,如下所示:
```{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 问题。
我正在尝试在 virtualenv 中使用 reticulate 和 Python 编织一个 Rmd 文件。 以下是我的 R 设置块:
```{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 库在块内加载没有问题,例如import os
。
根据这些消息,我猜测它没有加载 OGR/GDAL 绑定。但是,我不确定如何解决这个问题。
import geopandas
运行s 当我 运行 笔记本内部的块时没有错误,例如不是编织。它也适用于我项目的 repl_python()
shell。所以这个问题似乎主要与 knitr 和 knitting 有关。
我的 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 块中,如下所示:
```{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 问题。