mieki256's diary



2015/06/20() [n年前の日記]

#3 [prog] Atomでスクリプトを実行するにはどうすれば

Windows7 x64 + Atomエディタで Pythonスクリプトを書いてみようと思ったのだけど、その場でPythonスクリプトを実行する方法が分からなくて。

編集中のスクリプトを実行できる拡張というと、以下の3つが見つかったのだけど。

_script
_script-runner
_atom-runner

Pythonスクリプトの1行目の #! /usr/bin/env python という記述は、*NIX上で動かす時のお決まりの記述で。このスクリプトはこのプログラムで動くよ、と知らせているというか。

_シバン (Unix) - Wikipedia
_env - Wikipedia

この場合、/usr/bin/env が python のある場所を探して伝えてくれるので、スクリプトを配布する人も動かす人も楽になる。各環境が Python だの Perl だの Ruby だのをどこにインストールしてるかによって、その都度スクリプトソースを書き換えなきゃいけない、という手間が省けるので。 *1

ただ、Windows は /usr/bin/env なんて無いわけで…。もっとも、Windows 上で動かした場合は、最初に # がついてることで「これは只のコメント行だな」と判断して読み飛ばしてくれるはずで。実際、DOS窓上でスクリプトを実行しても文句を言われたりしないし。

しかし、どうも atom-runner はそこを読み取って「オイコラ、/usr/bin/env なんて無いぞ? バグったスクリプトを俺に渡してるんじゃねえ」と文句を言ってるのかなと。

Atom関連情報を探してみたけど、どうも Macユーザさんがほとんどのようで。コレ、Macなら問題なく動いてるんだろうな…。

まあ、DOS窓開いといてそっちで動かせば済む話でしょうけど。エディタ上からキーを叩けば動作確認できるソレと比べると不便だなと。

妥協 :

_script を使った場合だけど、#!/usr/bin/env python の前に # を打って、# #! /usr/bin/env python にすれば…最低限の修正で誤魔化せなくもないかなと。

以下で気になる話が。

_Python can't be executed because "#! /usr/bin/env python" ? - Issue #288 - rgbkrk/atom-script
_atom-script/script-view.coffee at 833e7a3a680a53941f972b5ae3c64bcd520eccb9 ・ rgbkrk/atom-script
lib/script-view.coffee#L44 we currently return early from the getShebang method. One possible workaround is returning early if a atom-script config option for ignoreShebang was specified.
ignoreShebang って何だろう…。

む。なんとかなったかも。C:\Users\アカウント名\.atom\packages\script\lib\script-view.coffee をいきなり書き換えちゃって、getShebang の中で何もせずに return するよう修正してみたら出力結果が文字化けしなくなった。これなら使えそう。

ところで、拡張子が .coffee ってついてるけど…コレ何? CoffeeScript ってヤツかな。どんな言語なんだろう。

ググってみたら、JavaScript を Ruby っぽく書けるものらしく。なんだかヨサゲ。

*1: その代わり、スクリプトの実行までにちょっとだけ時間がかかる。いきなり目的のプログラムを呼び出すわけじゃないから。Webサーバが何度も何度も呼び出す場合は効いてきちゃうからこんな風習は止めるべき、てな話もあるけれど、今時のWebサーバは mod_perl や mod_python 等の…。まあ、そのあたりは _喧々諤々 なので踏み込みたくないです。

以上です。

過去ログ表示

Prev - 2015/06 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project