python - Bash 脚本 : No such file or directory

标签 python bash terminal scrapy cygwin

所以,我需要运行这个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/

相关文章:

regex - bash 替换用包含关键字的标记分隔的部分文本

pdf - 使用 vim 阅读 pdf 的内容

windows - 如何使 Rust 草书的示例在 Windows 上运行?

python - 在不使用数据库的情况下查询预取对象?

Python脚本手动执行但不通过cron

python - 使用 Flask-WTF 时从字典填充 WTForms 表单

bash - 以给定的行数从 file1 到 file2 交错文本文件

python - 沿极坐标系的图像信息

linux - 我在 w10 上的 bash 源于某个奇怪的地方

java - 从终端执行的命令,使用 ProcessBuilder 从 Java 失败