Не могу установить сетку в R - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь установить сетку, чтобы я мог выполнить некоторый код Python, который я написал из R. К сожалению, у меня проблемы с установкой пакета, и мне не очень повезло в определении причины.

Я обнаружил, что, скорее всего, это как-то связано с компиляцией пакета и возможными проблемами с g cc или другими версиями компиляторов c ++, но я немного разбираюсь в этих проблемах и убежище не смог заставить что-либо работать. Я пытался удалить и переустановить инструменты командной строки xcode, но это не решило проблему. Кроме того, я не совсем уверен, с чего начать. Я надеюсь, что кто-то испытал это, и есть простой ответ, я был бы очень признателен за любую помощь.

> install.packages('reticulate')

  There is a binary version available but the source version is later:
           binary source needs_compilation
reticulate   1.13   1.14              TRUE

Do you want to install from sources the package which needs compilation? (Yes/no/cancel) y
installing the source package ‘reticulate’

trying URL 'https://cran.rstudio.com/src/contrib/reticulate_1.14.tar.gz'
Content type 'application/x-gzip' length 1504849 bytes (1.4 MB)
==================================================
downloaded 1.4 MB

* installing *source* package ‘reticulate’ ...
** package ‘reticulate’ successfully unpacked and MD5 sums checked
** libs
/usr/local/bin/gcc-8  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG  -I"/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rcpp/include" -I/usr/local/include   -fPIC  -Wall -g -O2  -c RcppExports.cpp -o RcppExports.o
/usr/local/bin/gcc-8  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG  -I"/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rcpp/include" -I/usr/local/include   -fPIC  -Wall -g -O2  -c event_loop.cpp -o event_loop.o
/usr/local/bin/gcc-8  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG  -I"/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rcpp/include" -I/usr/local/include   -fPIC  -Wall -g -O2  -c libpython.cpp -o libpython.o
/usr/local/bin/gcc-8  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG  -I"/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rcpp/include" -I/usr/local/include   -fPIC  -Wall -g -O2  -c output.cpp -o output.o
/usr/local/bin/gcc-8  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG  -I"/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rcpp/include" -I/usr/local/include   -fPIC  -Wall -g -O2  -c python.cpp -o python.o
/usr/local/bin/gcc-8  -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG  -I"/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rcpp/include" -I/usr/local/include   -fPIC  -Wall -g -O2  -c readline.cpp -o readline.o
/usr/local/bin/gcc-8 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o reticulate.so RcppExports.o event_loop.o libpython.o output.o python.o readline.o -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
installing to /Library/Frameworks/R.framework/Versions/3.5/Resources/library/reticulate/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Error: package or namespace load failed for ‘reticulate’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Library/Frameworks/R.framework/Versions/3.5/Resources/library/reticulate/libs/reticulate.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.5/Resources/library/reticulate/libs/reticulate.so, 6): Symbol not found: __ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale
  Referenced from: /Library/Frameworks/R.framework/Versions/3.5/Resources/library/reticulate/libs/reticulate.so
  Expected in: flat namespace
 in /Library/Frameworks/R.framework/Versions/3.5/Resources/library/reticulate/libs/reticulate.so
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/Library/Frameworks/R.framework/Versions/3.5/Resources/library/reticulate’
Warning in install.packages :
  installation of package ‘reticulate’ had non-zero exit status

The downloaded source packages are in
    ‘/private/var/folders/4g/ctbqp07114x4brzp4hr8zfc40000gn/T/RtmpDNvElq/downloaded_packages’

Информация о сеансе:

> sessionInfo()
R version 3.5.3 (2019-03-11)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS  10.15.2

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib

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

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

loaded via a namespace (and not attached):
[1] compiler_3.5.3 tools_3.5.3    yaml_2.2.0  

1 Ответ

0 голосов
/ 23 февраля 2020

Хорошо, я предлагаю использовать conda для создания новой среды и установить ее заново. Потому что тогда вы решаете проблемы - так как только одна строка conda install -c conda-forge r-reticulate установит вас, вы решите и решите все проблемы для вас.

Однако некоторые люди (которые не знают, что такое conda) не будут будь счастлив с моим предложением. Я не могу и не помогу им.

Но для тех, кто знает conda, я рекомендую:

conda create --name R_reticulate
source activate R_reticulate

conda install -c conda-forge r-reticulate

(или, конечно, вы можете определить номера версий при установке в среду conda. ..)

если версия R в вашем локальном окружении сейчас такая же, как и в вашем глобальном R, вы даже можете обогнать большую часть библиотеки, установленной в ранее существовавшем R - таким образом, вам не нужно переустановите их снова и снова. Просто манипулируя переменной path в R. conda env's R.

(просто как хак, и если вам лень устанавливать все заново, возможно, потому что вы хотите просто поиграться с сетчатой ​​сеткой, прежде чем устанавливать ее в ваш глобальный R).

Для этого в вашем глобальном R определите, где ваши пакеты R установлены .libPaths() с вашей глобальной консоли R.

Затем запустите R в вашей R_reticulate conda окружающей среды, и в начале сеанса выполните

my_libPaths <- .libPaths()
# and e.g. add one or some of your global .libPaths() paths
# to here by
my_libPaths <- <- c(my_libPaths, one_of_global_path)
.libPaths(my_libPaths) # assign new libpaths! 
# the order of the paths in the vector is important - decides about where R looks first!
# of course you can change order like you want in the vector!

. Таким образом, вам не нужно переустанавливать библиотеки.

Однако номер версии глобальной и локальной (conda) R должно быть таким же, чтобы это работало. В противном случае вы всегда будете получать предупреждения при загрузке библиотек ...

Проще, конечно, переустановить все в ваш conda env's R. (conda вам в этом очень поможет!).

...