web-dev-qa-db-ja.com

エラー「.onLoadが 'tcltk'のloadNamespace()で失敗しました」

あらゆる種類の外部パッケージをRに効果的にロードする方法について一般的な質問があります。この情報を詳述する多くのソースでは不十分であることがわかりましたが、それぞれのURLについては言及しません。以前に外部パッケージをRに正常にロードしましたが、fguiパッケージをロードするのに問題があります。

私の特定のケースでは、ライブラリfguiをRStudioにロードできません。まず、次のコマンドを使用して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’

スレッド " Rでlibrary(ggplot2)を読み込もうとしたときにエラーが発生しました "を調べましたが、質問に答えられませんでした。

パッケージfguiをRStudioで正しく動作させるための提案があれば、私を助けてください。外部パッケージをRに効果的にロードするというより一般的な問題に自由に対処してください。

12
warship

tcltkは一般的なパッケージではありません。おそらくすでにシステムにインストールされており、CRANにないため(statsなどのRに付属の基本パッケージと同じように)、通常のinstall.packagesプロシージャを使用してインストールすることはできません。また、tcltk2tcltkと同じではありません。これは、tcltkの機能を拡張する(そして依存する)パッケージです。

だから、これから始めましょう:

> capabilities("tcltk")
tcltk 
 TRUE

それがFALSEに戻った場合、それはあなたのRがtcltkサポートで構築されていないことを意味します。使用しているOSがわからないので、手助けするのは少し難しいです。

そうは言っても、Linuxを使用している場合は、R tcltkサポート付き を再構築する必要があります。これは比較的簡単なはずです。基本的に、Tclとtkがシステムの標準的な場所(Sudo apt-get install tcl8.5-dev tk8.5-devなど)で使用できることを確認してから、通常の手順に従ってRを再構築します。

Mac OSを使用している場合は、 John FoxがRcmdrに関連してここで説明しています と同じエラーが発生します。要するに、それはおそらく2つのことのうちの1つです:

  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の古いバージョンがあります。 MacOSソフトウェアアップデートを実行してみてください。

シンボリックリンクを作成することによっても解決できる場合があります この回答で説明されているように

Tcl/tkをサポートせずにソースからRをビルドしない限り、これはWindowsでは発生しないはずです。

15
Thomas

Rの公式インストール手順 言う:

注:X11(tcltkを含む)を使用するには、OS Xの一部ではなくなったため、 XQuartz をインストールする必要があります。OSXを新しいメジャーバージョンにアップグレードするときは、必ずXQuartzを再インストールしてください。

したがって、Rでtcltkパッケージを使用する場合は、XQuartzを(再)インストールするだけです。

7
R Yoda
  1. 場所:/ optにあるX11ファイルを削除します
  2. アプリケーションの単一性でX11を削除します
  3. x11を再インストールします

問題が解決しました...

5
user2669497

Arch Linuxでは、tktclとは別のパッケージであり、両方をインストールする必要があります。

_Sudo pacman -S tcl tk
_

これは、Rを使用したcapabilities("tcltk")からの出力がTRUEである場合です(つまり、ここでの回答で前述したように、Rはtcltkサポートを使用してコンパイルされます。これはArchリポジトリからインストールした場合)。

1
joelostblom

Mac-OSユーザーの場合:

私は最近この問題に苦労し、R-3.1.2にバグがあることを発見しました。これは、インストールされていないのにotoolがインストールされていることを前提としています。

R-3.0.0(およびそれ以降)にはTck/Tk 8.6.0が付属しているため、インストールする必要はありません。

Rの最新バージョン(3.4.2)にアップグレードするだけで、問題が解決しました。

1
user 123342

私は同じ問題を抱えていて、簡単な修正を見つける前にうさぎの穴を掘り下げました。 bianryからRをインストールすると、デフォルトでtcltkが含まれます。デフォルトのインストールでインストーラーを実行するだけです。ここで.dmgを取得できます: https://cran.r-project.org/bin/macosx/

1
dmca