SAS経由でPythonを実行する方法は?

おそらく、Pythonで書かれたプログラム(多くのそのようなプログラムがあり、同僚によって書かれている可能性があります)があり、SASプログラムコードにこの実行を埋め込む必要がある場合、すでに状況に直面しています。



これを行う方法?











そのため、このためにgithubで次のオープンソースツールを使用します。 まず、SASJavaExec.javaファイルを自分自身にコピーし、jarファイルにコンパイルします。 重要なポイント:JDK 1.7_025を使用してコンパイルする必要があります。 JDK 1.8を使用すると、SASコードでエラーが発生します。



1.クラスを作成します:java -jar SASJavaExec.jar

2. jarファイルにコンパイルします。jar cfm SASJavaExec.jar manifest.txt SASJavaExec $ 1.class SASJavaExec.class



manifest.txtは1行のファイルです:Main-Class:SASJavaExec。 これでSASJavaExec.jarファイルができました。



次に、システム設定で登録する必要があります。 Windowsでプログラムを実行したため、環境設定でCLASSPATH変数を設定する必要があります。



私の場合、次のようになりました。









これを行う方法の詳細については、こちらを参照してください



上記の手順をすべて完了したら、SASを実行します。



次のパスを指定する必要があります。



Pythonファイルパス:%let PYTHON_EXEC_COMMAND = C:\ Python27 \ python.exe;

Pythonプログラムへのパス:


%let WORK_DIR = C:\SAS\T_Java\Example; python_pgm = "&WORK_DIR.\digitsdata_svm.py";
      
      





その後、実行可能コード-データセットを記述します。



 /*** Part I: Python ***/ data _null_; length rtn_val 8; *** Python program takes working directory as first argument; python_pgm = "&WORK_DIR.\digitsdata_svm.py"; python_arg1 = "&WORK_DIR"; python_call = cat('"', trim(python_pgm), '" "', trim(python_arg1), '"'); put python_pgm = ; put python_arg1 =; put python_call=; declare javaobj j("SASJavaExec", "&PYTHON_EXEC_COMMAND", python_call); j.callIntMethod("executeProcess", rtn_val); run;
      
      





次に、プログラムを実行し、実行ログを確認します。



 python_pgm=C:\SAS\T_Java\Example\digitsdata_svm.py python_arg1=C:\SAS\T_Java\Example python_call="C:\SAS\T_Java\Example\digitsdata_svm.py" "C:\SAS\T_Java\Example" 27, 2016 6:36:39 AM SASJavaExec executeProcess INFO: Executing [C:\Python27\python.exe, C:\SAS\T_Java\Example\digitsdata_svm.py, C:\SAS\T_Java\Example] ... 27, 2016 6:36:39 AM SASJavaExec executeProcess INFO: Starting external process ... 27, 2016 6:36:39 AM SASJavaExec executeProcess INFO: External process exit value 0.
      
      





すべてが順調で、digitsdata_svm.pyプログラムがSASから実行されました。



この記事がお役に立てば幸いです。



PS SASプログラム自体の例は、記事の冒頭で示されたgithubからも引用されています。



All Articles