3

を使用してrpy2、特定のパッケージがインストールされているかどうかを確認したい。もしそうなら、私はそれをインポートします。そうでない場合は、最初にインストールします。

インストールされているかどうかを確認するにはどうすればよいですか?

from rpy2 import *
if not *my package is installed*:
   rpy2.interactive as r
   r.importr("utils")
   package_name = "my_package"
   r.packages.utils.install_packages(package_name)
myPackage = importr("my_package")
4

3 に答える 3

1

@SaschaEpskamp の別の SO 投稿への回答から取得した次の関数を使用できます。

pkgTest <- function(x)
  {
    if (!require(x,character.only = TRUE))
    {
      install.packages(x,dep=TRUE)
        if(!require(x,character.only = TRUE)) stop("Package not found")
    }
  }

代わりにこれを使用して、パッケージをロードします。

r.source("file_with_pkgTest.r")
r.pkgTest("utils")

一般に、Python 内で多くの R コードを記述しようとしないことをお勧めします。必要なことを行う高レベルの R 関数をいくつか作成し、それらを R と Python 間の最小限のインターフェイスとして使用するだけです。

于 2013-04-02T10:57:23.083 に答える
-1
   import sys,subprocess
   your_package = 'nltk' 

   package_names = subprocess.Popen([pip freeze], 
   stdout=subprocess.PIPE).communicate()[0]
   pakage = package_names.split('\n')

   for package in packages:
      if package ==your_package:
         print 'true'
于 2013-04-02T11:11:10.743 に答える