2016-12-30 65 views
0

中运行时,我有一个Python脚本(blah.py),其中第一行是:Scrapy “导入错误” bash脚本

import scrapy 

当我写 “蟒蛇blah.py” 它工作正常。

我有一个.SH脚本:

#!/bin/bash 
python blah.py 

当我执行与 “SH blah.sh” 的剧本.SH我得到的错误:

ImportError: No module named scrapy 

我想不出为什么。我想从.sh文件中执行它,因为我正在执行Python脚本之后的其他命令。

+2

也许你是在一个不同的环境中运行它,在终端检查运行'蟒蛇blah.py'型'时python',和里面的同bash脚本,在'python blah.py'类型''哪个python'之前。检查它们是否不同。 – eLRuLL

+0

你说得对,他们是不同的。在脚本内部试图使用Python 2.从终端使用Python 3.我将脚本中的行更改为“python3 blah.py”,现在它可以工作。 – Andrew

+0

@elRuLL - 如果你想重新写你的评论作为答案,我可以接受你的答案。问题是在.bashrc中我有“python”作为“/usr/local/bin/python3.5”的别名。但是在bash脚本中,这个别名显然不被使用。 – Andrew

回答

1

看起来你可以在不同的环境下运行。

运行python blah.py时Python版本使用的是带有which python,和同为bash脚本,which pythonpython blah.py类型的线前检查的终端。

确保两个路径是相同的为他们工作