AKAGI Rails

鉄道模型シミュレーターで遊んでいたはずが、気づいたらPythonなども。

VRMNXのPythonではイマイチ空が飛びにくい

先日,冗談半分で以下の漫画を紹介した。

Python

どういうことかというと,Pythonというプログラミング言語は,インターネットで様々な「モジュール」が公開されていて,様々な拡張機能を簡単に追加することができるということを言っている。 antigravity(反重力機構の意味)というモジュールまで何でもあるので,これをimportするだけで空も飛べちゃうよ,という,洒落になっている。

(ちなみにこのantigravityモジュールは実在するので読者諸兄もimportしてみてほしい。)

Pythonはプリインストールのモジュール以外にも,様々な方法でモジュールを追加することができる。その大半は無料で提供されている。

はずなのだが。

追加モジュールのインストールに手こずる件

通常のPythonでは,何かしらのモジュールのインストールにはpipという「魔法」(ということにしておく)を使う。具体的には,Windowsコマンドプロンプトから

python -m pip install SomePackage

のようにすればよい。ところが,VRMNXに組み込みのPythonエンジンは,Windowsコマンドプロンプトから叩く術がないので,この魔法が使えない。

代替手段にもいろいろ問題がある件

代替手段として,I.MAGIC Blogで暗示されているのは,

  1. PCにPythonを別途インストールする
  2. そのPythonにモジュールをインストールする
  3. VRMNXからはWindowsにインストールしたパッケージを参照する

という曲芸みたいな方法である。あまり褒められたものではないと思う。現実問題として,外部モジュールを利用するVRMNXレイアウトを制作・配布するために,制作側・遊ぶ側の双方で合意しておくべき事柄が複雑になりすぎる。

1.,2. のステップはWebを探せば出てくる一般的な方法でインストールをすることはできるが,コマンドプロンプトを叩く必要のある2. の手順は一般的に見てかなり複雑であり,受け入れられそうにない。

3.もまた厄介である。WindowsPythonをインストールしたディレクトリは人によってまちまちである(可能性がある)ため,リンク先の記事にあるおまじないを一概にVRMNXのスクリプトにコピペしたところで動く保証はほぼない。よってここを各自の環境に合わせて書き換える必要が生じている。

みんなが空を飛ぶためには

  • VRMNXのPythonエンジンが,標準ライブラリ(\Libs)だけでなく標準のDLLs(\DLLs)を同梱すること
  • VRMNXのシステムが,自分の組み込みPythonエンジンでpipを打てるようになること

以上2点が必要であるように思われる。

# この議論は結局のところ,VRMNXでベクトル演算のためにnumpyが使いたいという動機から来ているものだが,pipはできなくてもいいからnumpyくらいはじめから同梱してほしい!

# VRMNXのPythonimport antigravityをしてもちゃんとブラウザが起動して例のページに飛んだのはちょっと意外だった。