2016-04-07 15 views
0

Rscriptを使用してコマンドラインからRスクリプトを実行しようとしています。 RスクリプトはいくつかのPythonコードを呼び出し、インタラクティブに実行するとうまく動作します。しかし、Rscriptから電話すると、gdalでエラーが発生します。私はエラーが対話型のRセッションで次のコマンドを実行し、例えば、2対のpython 3に関連していると信じて:コマンドラインからpythonバージョンを設定する

system("python --version)

利回り

のPython 2.7.9

シェルから「同じ」コマンドを実行している間:

$ python --version

利回り

のPython 3.5.1 ::連続解析を、株式会社

私は、Python 2.7.9に私の$ Rscript "foo.R"のコールを指すことができますどのように?

+0

あなたのPythonコードでshebangを使用して、どのバージョンを使うべきかを教えていただけませんか? '#!/ bin/env python2'や'#!/ bin/env python3'のようなものです。これは、Pythonコードの先頭に追加する必要があります。 – Dataman

+2

'python3'をコマンド名として明示的に使用します –

+0

どのように対話型Rセッションを開始しましたか?私はそれがシェルとは異なるPATH環境変数を持っていると思う。コマンドラインとRセッションからPATH環境変数を出力できますか? –

答えて

0

$ python --versionまたは$ Rscript -e 'system("python --version")'をシェルコマンドラインから呼び出すと、Python仮想環境で動作している可能性があります。おそらくvirtualenvで作成されています。具体的には、実行中/home/foo/miniconda3/bin/python

system("python --version")をRStudioから実行すると、システムのデフォルトバージョンが取得されます。具体的には、/usr/bin/pythonを実行しています。

どのように私は、Python 2.7.9に私の$ Rscript "foo.R"のコールを指すことができますか?

これは、仮想Python環境にどのように入力したかによって異なります。それは1 virtualenvによって作成された場合は、単にそれを無効化:

$ deactivate 
$ Rscript -e 'system("python --version")' 
2.7.9 

EDITを:あなたはminicondaによって作成された仮想環境を使用しているように見えます。そのような場合は、PATH環境変数を編集して、システムのデフォルトPythonを使用することができます。あなたのPATHをどのように編集するかは、変更をどれぐらいの期間有効にしたいかによって決まります。唯一つのコマンドで失わにご変更の場合

  • 、これを試してみてください。

    $ PATH="$(echo "$PATH" | sed -e s,:/usr/local/sbin,,)" Rscript -e 'system("python --version")' 
    
  • をご変更の場合は、単一のシェルセッションの継続時間を最後に、これを試してみてください。

    $ PATH="$(echo "$PATH" | sed -e s,:/usr/local/sbin,,)" 
    $ python --version 
    $ Rscript -e 'system("python --version")' 
    
  • PATHを永続的に変更するには、$ HOME/.bashrcファイルを適切に編集します。このためには新しいターミナルセッションを開始する必要があります。解決策は、私のRスクリプトでmethodsライブラリへの呼び出しを挿入し、コマンドを使用してのpython 2環境をロード/作成することでした

+0

あなたは私が何を意味しているか知っていれば、あなたは素晴らしいエディターですか? ;) – Dataman

+0

私はパスが異なっていることを理解しています。しかし、私は 'virtualenv'が何であるか分かりません。 '$ virtualenv' > 'virtualenv'プログラムは現在インストールされていません。あなたはそれをインストールすることができます: sudo apt-get install virtualenv – jsta

+0

@jsta - これはあなたが仮想のpython環境を作成するためにvirtualenvを使用しなかったことを意味します。どのようにして/ home/foo/miniconda3を作成しましたか?それをあなたのPATHの最初のものにしましたか?しかし、あなたがそれをしました、それは元に戻す必要があります。 –

関連する問題