Ошибка “.onLoad failed в loadNamespace () для ‘tcltk'”

У меня есть общий вопрос о том, как эффективно загружать какой-либо внешний пакет в R. Я обнаружил, что многие источники, детализирующие эту информацию, просто недостаточны, но я не буду упоминать эти соответствующие URL-адреса. Я успешно загрузил внешние пакеты в R раньше, но у меня возникают трудности с fgui пакета fgui .

В моем конкретном случае я не могу загрузить библиотеку fgui в R Studio. Сначала я загружаю непосредственно из CRAN с помощью команды:

 install.packages("fgui", lib="~/Documents/R_dir") 

Это отлично работает для меня. Мой рабочий каталог установлен в ~ / Documents / R_dir

Следующая команда, которую я использую:

 library("fgui", lib.loc="~/Documents/R_dir") 

Ошибка, которую я получаю:

 Error : .onLoad failed in loadNamespace() for 'tcltk', details: call: dyn.load(file, DLLpath = DLLpath, ...) error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.1/Resources/library/tcltk/libs/tcltk.so': dlopen(/Library/Frameworks/R.framework/Versions/3.1/Resources/library/tcltk/libs/tcltk.so, 10): Library not loaded: /opt/X11/lib/libX11.6.dylib Referenced from: /Library/Frameworks/R.framework/Versions/3.1/Resources/library/tcltk/libs/tcltk.so Reason: image not found Error: package or namespace load failed for 'fgui' 

Я просмотрел stream « Ошибка при загрузке библиотеки (ggplot2) в R », но он не ответил на мой вопрос.

Пожалуйста, помогите мне с любыми предложениями о том, чтобы пакет fgui работал правильно в R Studio и не стесняйтесь обратиться к более общей проблеме эффективной загрузки внешних пакетов в R.

    tcltk не является типичным пакетом. Вероятно, он уже установлен в вашей системе и не может быть установлен с использованием обычной процедуры install.packages , потому что он не находится на CRAN (как и базовые пакеты, которые поставляются с R, например, stats и т. Д.). Кроме того, tcltk2 не совпадает с tcltk ; это пакет, который расширяет (и зависит от) функциональность tcltk .

    Итак, начните с этого:

     > capabilities("tcltk") tcltk TRUE 

    Если это произойдет FALSE это означает, что ваш R не был создан с поддержкой tcltk. Вы не говорите, какую ОС вы используете, поэтому вам немного сложно помочь.

    Тем не менее, если вы работаете в Linux , вам нужно перестроить R с поддержкой tcltk . Это должно быть относительно просто. В принципе, убедитесь, что Tcl и tk доступны в вашей системе в стандартном расположении (что-то вроде sudo apt-get install tcl8.5-dev tk8.5-dev ), а затем перестроить R на обычные процедуры.

    Если вы находитесь в Mac OS , вы сталкиваетесь с той же ошибкой, которую описывает здесь Джон Фокс в отношении Rcmdr . Короче говоря, это, вероятно, одна из двух вещей:

    1. Проблема с правами на файл, связанная с каталогом, в котором установлен Tcl. Чтобы процитировать Fox: «Вы можете проверить источник этой проблемы, выпустив следующую команду в командной строке R:

       system("ls -ld /usr/local /usr/local/lib /usr/local/lib/libtcl*") # ls: /usr/local/lib: Permission denied # ls: /usr/local/lib/libtcl*: Permission denied # drwx------ 8 root wheel 272 Sep 24 10:21 /usr/local 

    Если вывод системной команды выглядит так, как указано выше, вы должны перейти в терминал и выполнить следующие действия: sudo chmod -R a+rX /usr/local и ввести свой пароль для изменения разрешений каталога.

    1. У вас устаревшая версия X-Windows. Попробуйте запустить Mac OS Software Update.

    Он также может быть разрешен путем создания символической ссылки, как описано в этом ответе .

    Это никогда не должно появляться в Windows , если только вы не построили R из источника без поддержки tcl / tk.

    Официальные инструкции по установке для R говорят:

    Примечание. Использование X11 (включая tcltk) требует установки XQuartz, поскольку он больше не является частью OS X. Всегда переустанавливайте XQuartz при обновлении ОС X до новой основной версии.

    Итак: просто (повторно) установите XQuartz, если вы хотите использовать пакет tcltk в R.

    1. удалить файл X11 на месте: / opt
    2. удалить X11 в приложении unitiltiy
    3. снова установить X11

    Задача решена…

    Для пользователей Mac-OS:

    Недавно я столкнулся с этой проблемой и обнаружил, что у R-3.1.2 есть ошибка, которая предполагает, что otool устанавливается, когда это не так.

    R-3.0.0 (и позже) поставляется с Tck / Tk 8.6.0, поэтому вам не нужно устанавливать его.

    Просто обновление до более поздней версии R (3.4.2) исправило проблему для меня.

    Давайте будем гением компьютера.