LoginSignup
1
3

More than 5 years have passed since last update.

【Python R pyper】pyper.Rが関数内だと使えない?解決方法

Last updated at Posted at 2017-05-02

引数RCMDに値を渡すとpyper.Rにエラーがでる、、、?

python3だと、インタープリタで以下に打つとインスタンスが作成されますが、(ただしRへのパスを通している場合)

>>> import pyper
>>> r = pyper.R() 

以下のようにRへのパスを記入するとエラーがでました。

>>> import pyper
>>> r = pyper.R(RCMD ="Rの場所")

別にパス通さなくても実行できるし、放置で良いかと思ってました。

引数RCMDにパスを渡さないと、関数内で使えない、、、

困りました。python初心者なため、原因が何なのか検討がつかないため、とりあえず、入門python3を読みなおしました。
関数の作り方をいろいろ試したけど、うまくいかない、、、さて困った。

エラーを見直そう。そうしよう。

自分の無知はさておいて、エラーと向き合うことにしました。

childstderr = file('nul', 'a')

どうやら、pyper.pyのここが悪さをしているようです。なにがいけないんでしょうか。

途方にくれている最中、神様が耳元でふっと囁いた

関数fileってpython3では使えないんだぜ、、、、

まさかね、fileをopenに組み替えればいいなんてあるわけないよね。そんな簡単な話じゃないよね。
半信半疑でしたが、

childstderr = open('nul', 'a')

に書きなおしましたよ。ええ、ちゃんと動くようになりましたよ。パチパチパチ。

結論

エラーを解決するには、エラーを理解するしかないんですね。当たり前ですね。
でも、pythonの勉強になりました。あーでもない、こーでもないと考えていると、自分の理解が足りていないところが
明確になったり、遠回りも悪くありません。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3