2016-11-10 33 views
0

私はopenCPUを使用して、rstanのかなり基本的なモデルを見積もるためのAPIを作成しています。openCPUとrstan - 接続を開くことができません

openCPUから呼び出されるのではなく、通常のRコンソールセッションから呼び出されたときに自分の関数が自分の環境で動作することを確認しました。

しかしopenCPU経由で呼び出されたときに、レスポンスは以下の通りです:

cannot open the connection 

In call: 
file(con, "r") 

rstanのソースにチェックポイントを挿入することで、IはR/cxxfunplus.R内の1つのコール(link to line on github here)にこれをトレースしました:

dso <- new('cxxdso', sig = sig, dso_saved = save_dso, 
      dso_filename = dso_filename, 
      modulename = module_name, 
      system = R.version$system, 
      cxxflags = get_makefile_flags("CXXFLAGS"), 
      .CXXDSOMISC = new.env(parent = emptyenv())) 

この呼び出しでは、失敗する可能性のある接続を読み取ろうとしていますか?

答えて

2

これを理解してください。が探している2つのメイクファイルのうちの1つは、openCPUで実行すると存在しません。ファイルは/ usr/share/R/share/makeです。

幸運なことに、最初のmakefileは存在していて十分です.2番目のmakefileをスキップし、最初のものだけを読むことでこれを修正できます。

rstan::get_makefile_textの最後の行の前に、私は次のように挿入された:私たちは知っているさせるための

makefiles <- makefiles[file.exists(makefiles)] 
+0

感謝を。最初のメイクファイルだけを読むためにあなたが呼び出したものは何でもあなたの答えに加えることができますか? –

+0

もちろん、コードを追加しました。 –

+1

OK。 GitHub上のrstanの開発ブランチにその行を追加しました。 –

関連する問題