1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCodeでProcessing.py

Last updated at Posted at 2020-09-13

Visual Studio Code(以下VSCode)でProcessing.py(ProcessingのPython Mode)を実行する方法についてまとめておきます。
筆者の環境はWindows10 (64bit)です。ファイルパスなどはこの環境であるものとして記述します。適宜読み替えてください。

トリック

先に実装の原理を種明かしします。

Processing.pyはJython(PythonのJava実装)で動いています。そのため、Processing.pyを実行する.jarファイル(Javaコードのコンパイル後のファイル)を取得し、それを使うことでProcessingのIDEを使わずにスケッチを動かせます。

注意

この方法で使用できるProcessingのバージョンは少し古いようです。そのため、例えばclear関数が使えなかったりします。
実行にも時間がかかります。かなり茨の道なので、IDEの方が快適かもしれません。

手順

ざっくりまとめるとこんな感じです。

  1. VSCode、JDK(Java Development Kit)をインストールする
  2. VSCodeにCode Runner拡張機能を追加する
  3. 実行用の.jarファイルを入手する
  4. スケッチのディレクトリを作る

1. VSCode、JDKをインストールする

長くなりそうなので、どちらも他のサイトに丸投げします。

VSCodeのインストール方法:

JDKのインストール方法:

Javaのインストールに関しては、コマンドラインでjava -versionを実行して次のような結果が得られれば成功です。

$ java -version
java version "14.0.2" 2020-07-14
Java(TM) SE Runtime Environment (build 14.0.2+12-46)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)

具体的な数字は少しずれていても大丈夫です。

2. VSCodeにCode Runner拡張機能を追加する

code-runner.JPEG

VSCodeを開き、左側にある「田」みたいなボタンを開き、拡張機能の管理メニューを開きます。検索ボックスで「code runner」と検索し、上の写真のものをインストールします。

3. 実行用の.jarファイルを入手する

厳密に言うと、「.jarファイルが入ったフォルダを圧縮したファイル」をダウンロードします。

https://py.processing.org/tutorials/command-line/
こちらのページの「Requirements」節の途中に、件のファイルがあります。引用しておきます。

Mac OS X
Windows: 64-bit, 32-bit
Linux: 64-bit, 32-bit

.tgzまたは.zipがダウンロードされます。解凍し、好きなところに置いてください。解凍したフォルダの中にprocessing-py.jarというファイルがあると思います。そのファイルが実行時に使う.jarファイルになります。

4. スケッチのディレクトリを作る

pyprocessingというフォルダを作成し、このフォルダ内にスケッチなどを置いていくものとします。

まずは、前節でダウンロードしたフォルダ内にあるprocessing-py.jarを置きます。

次に、VSCodeの設定をいじります。ワークスペース内のPython > Linting: Enabledfalseにします。これはpythonの拡張機能がすでにインストールされている場合のみになります。

pylint-setting.JPEG

写真にも示したように、ワークスペース内の設定を変更していることに注意してください。こうしないと他のプロジェクトに影響が出ます。

次に、sketch.py(スケッチファイル)を置きます。sketch.pyに以下の内容を記述します。

def setup():
    size(400,400)

def draw():
    background(255)
    fill(0)
    ellipse(mouseX, mouseY, 50, 50)

sketch.pyを開くと、pythonの拡張機能をインストールしないかという通知が(まだ入ってない場合は)画面右下に出てきます。インストールしてもしなくても支障はありません。インストールした場合は上述の設定変更を行う必要があります。

次に、設定を変更します。ワークスペース内のCode Runner: Custom Commandjava -jar processing-py.jar sketch.pyに変更します。下の写真の通りです。

code-runner-setting.JPEG

ディレクトリ構成は以下のようになります。

pyprocessing
    |- .vscode
    |   |- settings.json
    |- processing-py.jar
    |- sketch.py

settings.jsonには先ほど変更した設定が記録されています。念のため確認しておきます。

settings.json
{
    "code-runner.customCommand": "java -jar processing-py.jar sketch.py",
    "python.linting.enabled": false
}

これで準備完了です。Ctrl+alt+Kを押すと、しばらくしてからスケッチが動作します。スケッチウィンドウ内にマウスを置いて黒い円がついてきたら成功です。

おまけ: サードパーティ製のライブラリを使う

https://py.processing.org/tutorials/command-line/
詳しい情報はこちらの「Processing Libraries」節にあります。ライブラリのリストはLibraries | Processing.orgにあります。ここからの話はWindowsであるものとします。他のOSを使っている方は適宜読み替えてください。

大前提として、JRE 8u202が必要です(最新のJREは14です)。※JRE: Java Runtime Environment

今JRE8u202をダウンロードしようと思った場合、Oracleにサインインする必要があります。Oracleアカウントを作る際、かなり多くの個人情報を提供しなければなりません。正直言って敷居は高いですが、一応紹介しておきます。

また、ProcessingのIDEもインストールする必要があります。

まずは上のリンクから、JREをダウンロードし、インストールしてください。PATHは後で通します。

次に、バッチファイルrunner.bat(他OSではシェルスクリプトrunner.sh)を作成します。以下の内容を記述します。

runner.bat
@echo off
cd /d %~dp0
set PATH=C:\Program Files\Java\jre1.8.0_202\bin;
java -version
java -jar processing-py.jar sketch.py
echo Finished.
exit 0

このファイルは以下に示した流れを実行します。

  1. @echo off: デフォルトでは実行するコマンドが出力されるので、それをオフにします。
  2. cd /d %~dp0: 現在のディレクトリ(pyprocessing)をカレントディレクトリにします。
  3. set PATH...: javaコマンドの参照先を8u202のものに変更します。
  4. java -version: 確認のためにjavaのバージョンを出力します。
  5. java -jar processing-py.jar sketch.py: sketch.pyを実行します。
  6. echo Finished.: Finished.と出力します。スケッチの終了を確認するためです。
  7. exit 0: バッチファイルを終了します。なくてもいいらしいのですが念のため。

他OSについてはよく分からないので、参考になりそうなサイトを載せておきます。

次にpyprocessing(スケッチのあるディレクトリ)内にlibrariesフォルダを作成します。ここにライブラリをいろいろと追加していきます。

例としてPixelFlowのインストールを紹介します。
まずはProcessing IDEの「モードの追加...」を開きます。

add-mode.JPEG
画面の右上です。

Contribution Managerが開くので、「Libraries」タブでPixelFlowを検索し、選択して右下のInstallを押します。

pixelflow.jpg

インストールが完了するまで待ちましょう。インストールが終わったらDocuments\Processing\librariesをエクスプローラで開きます。PixelFlowというフォルダがあるはずです。このフォルダをpyprocessing\libraries内に移動させます。
※Processing IDEでインストールしたライブラリがどこにあるかはこちらの「Manual Install」節にあります。OSに関係なくDocuments/Processing/libraries内に置かれるようです。

これで準備完了です。試しに何か書いてみます。※コードは@ryotakoさんが書いたnoteを参考にさせて頂きました。

sketch.py
add_library("PixelFlow")

def setup():
   size(400, 400, P2D) # GLSL利用なのでP2D指定は必須

   # 流体シミュをするオブジェクト(DwFluid2D)と、
   # 結果の描画に使うPGraphicsを作る
   global F,G
   F=DwFluid2D(DwPixelFlow(this), width, height, 1) # 最後の引数は解像度。値を大きくすると粗いシミュになる
   G=createGraphics(width, height, P2D)

def draw():
   # PGraphicsを初期化。
   # これをしないと以前の結果に重ね描きされていく
   with G.beginDraw():
       G.background(255)
   
   # 流体シミュの条件を指定
   # ProcessingとGLSLでY座標の上下が逆なので注意
   F.addTemperature(mouseX, height-mouseY, 40, 1)
   
   # 流体シミュを1ステップ進める
   F.update()
   
   # 流体シミュの結果の描画
   # 最後の引数は 0:濃度、1:温度、2:圧力、3:速度、4:障害物の有無
   F.renderFluidTextures(G, 1)
   image(G,0,0)

これで準備完了です。ターミナルで先ほどのバッチファイル/シェルスクリプトを実行します。バッチファイルだと.\runner.bat、シェルスクリプトはsh runner.shです。なんかすごい流体のアニメーションが出てきたら成功なのですが、筆者の場合は何故か上手く行きませんでした。Processingコミュニティに質問したので、参考になれば幸いです。

試しにSoundというライブラリを使った場合はうまくいきました。現状としては、使えるライブラリが限られるといった感じです。

Code Runner拡張機能のcustom commandの設定を.\runner.batもしくはsh runner.shに変更するとスケッチの実行が少し楽になります。

参考

https://py.processing.org/tutorials/command-line/
https://discourse.processing.org/t/tutorial-running-python-mode-in-vscode/7716
https://github.com/processing/processing/wiki/How-to-Install-a-Contributed-Library#manual-install

追記
https://github.com/jdf/processing-py-site
筆者はまだ読めてませんが、こちらにより詳細な方法があるかもしれません。

1
4
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
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?