2015-06-12 657 views
0

我有以下bash腳本:使用bash腳本執行Python程序

export MYCONFIG_CONFIG=TEST 
/home/bmwant/projects/test/venv/bin/python3 /home/bmwant/projects/test/script.py 

我的Python腳本需要一個我已經設置環境變量,但運行該腳本

bash run_python.sh 

顯示錯誤

/home/bmwant/projects/test/venv/bin/python3: can't open file 'home/bmwant/projects/tes': [Errno 2] No such file or directory 

出了什麼問題?我已將腳本設置爲可執行文件chmod u+x run_python.sh

+1

嘗試將引號中的python腳本路徑加入並仔細檢查其正確性 – heinst

+1

錯誤中目錄中缺少't'? –

+0

'home/bmwant/projects/tes'應該是'home/bmwant/projects/test'(缺少t)嗎? –

回答

0

那麼,問題是文件格式。我已經在Windows中創建了它,然後通過FileZilla複製到我嘗試運行它的遠程服務器。所以只要運行

apt-get install dos2unix 
dos2unix run_python.sh 
bash run_python.sh 

所有的都會正常工作。感謝@霍斯特的提示。

+0

請接受此答案(或刪除問題),以便不再出現未解決的問題。謝謝。 – tripleee

1

已使script.py可執行文件?

chmod u+x /home/bmwant/projects/test/script.py 

試試這個腳本:

#!/bin/bash 
export MYCONFIG_CONFIG=TEST 
pushd /home/bmwant/projects/test/venv/bin/ 
./python3 /home/bmwant/projects/test/script.py 
popd 

您可以通過運行:

./run_python.sh 
+0

'-bash:./run_python.sh:/斌/慶典^ M:壞的解釋:沒有這樣的文件或directory' –

+2

不好意思啊......做了'DOS2UNIX的run_python.sh' ... Linux的碰撞我的Windows換行符!̶廢話,但它應該有所幫助;) – Horst

+0

你可能是指./python3而不是'.python3'。有了這種修復方法,如果症狀是由只允許很短的路徑名稱引起的,那麼這可能會起作用,但這會非常有用 - 我的猜測是這無濟於事。 (另外,'pushd' /'popd'是多餘的 - 當腳本結束時,腳本的工作目錄將會丟失。你可以用'cd'替換'pushd'。) – tripleee