2016-10-14 7 views
2

Rmarkdown内からPythonスクリプトを呼び出そうとしています。スクリプトはBiopythonに依存しているが、bashシェルからRmarkdownRmarkdownはbashとは異なるPythonを呼び出します

```{r, engine = "bash"} 
python --version 
``` 

のPython 2.7.10

からrmarkdown

から呼び出された場合、このライブラリが見つからない

python --version 

2.7.12

がどのように呼ばれているバージョンを制御することができますPythonの?

(私は思い出すこの混乱につながっている可能性があるの自作と異なるPythonのバージョンをインストールした...)

+0

bashエンジンを使う代わりに、直接Pythonを使うことができます: '' {python、engine = 'python2'、engine.path = ''} '' ' – shadow

+0

はい、私は引数を使って呼び出したいpythonスクリプトを持っています。 '' 'python myscript.py arg1 arg2''' – Latrunculia

+0

シェルから呼び出されたPythonのバージョンは、' ''/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/bin/python'''を使用して、フルパスで直接呼び出すことができます。しかし、なぜRmarkdownはデフォルトのPythonを呼び出しませんか?また、パスと混同していると思われるため、スクリプトはとにかく失敗します – Latrunculia

答えて

0

あなたの塊でengine.path変数を設定する必要があります。あなたが実行することができ、あなたの端末で正しいのpythonを実行している場合は、あなたがアナコンダを使用している場合、それは次のようになります...

```{python, engine.path="~/anaconda3/bin/python"} 
your code here... 
``` 

...

import sys 
print(sys.executable) 

これはあなたを指している必要がありますRMarkdown/knitrのengine.pathへの引数として渡すべきpython実行ファイルの場所。

関連する問題