试图让casperjs在Ubuntu 12.04上运行。在我运行时安装它后,我得到:
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脚本。但是当我运行它时,我得到“没有这样的文件”。
我可以通过将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
在输出之前发出的任何包含尝试执行的行。[编辑:刚看到吉尔斯的回答。检查strace输出中看起来像的行execve("/usr/bin/python\r", ...)
。]
strace /usr/local/bin/casperjs
在非工作版本上运行吗?如果我们可以看到env尝试执行哪些文件,以及env找不到python还是python无法打开脚本,这将很有帮助。