พยายามทำให้ 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
ถูกส่งออกที่มีความพยายามของ execve [แก้ไข: เพิ่งเห็นคำตอบของ Gilles ตรวจสอบบรรทัดในเอาต์พุต strace ที่มีลักษณะexecve("/usr/bin/python\r", ...)
ดังนี้ ]
strace /usr/local/bin/casperjs
กับรุ่นที่ไม่ทำงานได้หรือไม่? จะเป็นประโยชน์หากเราเห็นว่าไฟล์ env พยายามเรียกใช้งานและไม่ว่า env จะล้มเหลวในการค้นหา python หรือ python ไม่สามารถเปิดสคริปต์ได้หรือไม่