Ubuntu 12.04でcasperjsを実行しようとしています。実行時にインストールすると、次のようになります。
09:20 $ ll /usr/local/bin/casperjs
lrwxrwxrwx 1 root root 26 Nov 6 16:49 /usr/local/bin/casperjs -> /opt/casperjs/bin/casperjs
09:20 $ /usr/bin/env python --version
Python 2.7.3
09:20 $ cat /opt/casperjs/bin/casperjs | head -4
#!/usr/bin/env python
import os
import sys
09:20 $ casperjs
: No such file or directory
09: 22 $ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06)
[GCC 4.6.3] on linux2
したがって、Pythonは存在し、実行可能です。casperjsは適切な場所を指しており、それはpythonスクリプトです。しかし、実行すると「No such file」というメッセージが表示されます。
casperjs pythonファイルの最初の行を次のように変更することで修正できます。
#!/usr/bin/env python
に:
#!/usr/bin/python
結果:
$ casperjs --version
1.1.0-DEV
私はそれを修正することができましたが#!/usr/bin/env python
、それが通常のインタプリタ行であるように見えるので、なぜそれが動作しなかったのか疑問に思っています。何か間違った設定がありますか?
casperjsを取得する手順は次のとおりです。
$ git clone git://github.com/n1k0/casperjs.git
$ cd casperjs
$ ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs
$ casperjs
: No such file or directory
: No such file or directory
出力しようとする直前に出力され、試行された行を含む行。[編集:Gillesの答えを見た。strace出力で、次のような行を確認しますexecve("/usr/bin/python\r", ...)
。]
strace /usr/local/bin/casperjs
バージョンで実行してみてください。envがどのファイルを実行しようとしているのか、envがpythonを見つけられないのか、pythonがスクリプトを開けないのかを確認できれば助かります。