首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误".onLoad在‘tcltk’的loadNamespace()中失败“

错误".onLoad在‘tcltk’的loadNamespace()中失败“
EN

Stack Overflow用户
提问于 2014-08-08 21:54:14
回答 5查看 31.6K关注 0票数 14

关于如何有效地将任何类型的外部包加载到R中,我有一个一般性的问题。我发现许多详细说明这些信息的来源都是不够的,但我将省略提及这些各自的URL。我以前已经成功地将外部包加载到R中,但是加载fgui包时遇到了困难。

在我的具体情况下,我不能将库fgui加载到R中。首先,我使用命令直接从CRAN下载:

代码语言:javascript
运行
复制
install.packages("fgui", lib="~/Documents/R_dir")

这对我来说很好。我的工作目录设置为~/Documents/R_dir

我使用的下一个命令是:

代码语言:javascript
运行
复制
library("fgui", lib.loc="~/Documents/R_dir")

我得到的错误是:

代码语言:javascript
运行
复制
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’

我检查了"试图在R中加载库(Ggplot2)时出错“的帖子,但它没有回答我的问题。

请帮助我提出任何建议,让包fgui在R Studio中正常工作,并自由地解决有效地将外部包加载到R中的更普遍的问题。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-08-09 14:15:02

tcltk不是一个典型的包。它可能已经安装在您的系统上,并且不能使用通常的install.packages过程安装,因为它不在CRAN上(就像R附带的基本包,比如stats等等)。而且,tcltk2tcltk不一样;它是一个扩展(并依赖于) tcltk功能的包。

所以,从以下几个方面开始:

代码语言:javascript
运行
复制
> capabilities("tcltk")
tcltk 
 TRUE

如果返回到FALSE,这意味着您的R不是用tcltk支持构建的。你没有说你使用的是什么操作系统,所以帮助你有点困难。

也就是说,如果您使用的是Linux,则需要重新构建R 有tcltk支持。这应该是相对简单的。基本上,确保Tcl和tk在您的系统上可以在一个标准位置(类似于sudo apt-get install tcl8.5-dev tk8.5-dev)可用,然后按照通常的步骤重建R。

如果您使用的是Mac ,则会遇到与John Fox在这里描述了与Rcmdr有关的内容。相同的错误。简而言之,这可能是两件事中的一件:

  1. 与安装Tcl的目录相关的文件权限问题。引用Fox的话:“您可以通过在R命令提示符下发出以下命令来验证此问题的来源: 系统(ls -ld /usr/local /usr/local/lib /usr/local /lib/libtcl*)# ls: /usr/local/lib/lib:权限被拒绝# ls: /usr/lib/libtcl*:权限被拒绝#drwx

如果系统命令的输出与上述类似,则应该转到终端并执行以下操作:sudo chmod -R a+rX /usr/local并输入密码以更改目录权限。

  1. 你有一个过时的版本。尝试运行Mac软件更新。

它也可以通过创建一个符号链接如本答案所述来解决。

除非您在没有tcl/tk支持的情况下从源代码中构建R,否则在上永远不会出现这种情况。

票数 18
EN

Stack Overflow用户

发布于 2016-01-15 23:51:12

R的正式安装说明说:

注意:使用X11 (包括tcltk)需要安装XQuartz,因为它不再是OS的一部分。在将OS升级到新的主要版本时,一定要重新安装XQuartz。

因此:如果您想在R中使用XQuartz包,只需安装tcltk

票数 7
EN

Stack Overflow用户

发布于 2019-08-04 17:47:18

在Arch上,tk是一个独立于tcl的包,两者都需要安装:

代码语言:javascript
运行
复制
sudo pacman -S tcl tk

这是假定来自R的capabilities("tcltk")输出是TRUE (这意味着您的R是用tcltk支持编译的,正如前面在这里的答案中所指出的,如果您从arch repos安装它,应该是这样的)。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25212800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档