所以,我需要运行这个run.sh文件,但我无法使用Windows默认的CMD。 所以我安装了 Cygwin64 Terminal 并且它准确地读取了文件,但在读取结束时,它发送了一个错误:
$ /cygdrive/c/Python27/Scripts/./run.sh
Starting scraper
Scrape complete, checking movies with imdb
C:\python27\python.exe: can't open file 'check_imdb.py': [Errno 2] No such file or directory
内部run.sh:
#!/bin/bash
echo "Starting scraper"
scrapy runspider cinema_scraper.py -t json --nolog -o - > "movies.json"
echo "Scrape complete, checking movies with imdb"
python check_imdb.py movies.json
check_imdb.py 位于 run.sh 文件夹内。
最佳答案
该文件在脚本内部作为相对路径引用。
python check_imdb.py movies.json
相对意味着它不指定整个路径(以/开头),而是相对于当前目录进行解释,您可以通过以下方式找到:
pwd
以 /
开头的路径被认为是绝对路径。
重要的是要记住脚本解释相对于当前目录的路径,而不是脚本所在的目录。
您可以在运行脚本之前更改为脚本的目录:
cd /cygdrive/c/Python27/Scripts
但如果您这样做,则需要在命令行上提供 movies.json
文件的绝对路径。
更好的是,修改脚本以具有绝对路径:
python /cygdrive/c/Python27/Scripts/check_imdb.py movies.json
关于python - Bash 脚本 : No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41956355/