2016-12-30 67 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類型的線前檢查的終端。

確保兩個路徑是相同的爲他們工作