簡體   English   中英

嘗試激活virtualenv並在其中執行python腳本時出現Shell腳本語法錯誤

[英]Shell script syntax error when trying to activate a virtualenv and execute a python script in it

我想要一個可以激活虛擬環境(在外殼中和通過cron)的腳本,然后使用該virtualenv中的所有參數運行傳遞的腳本。

這是prod.sh現在的內容:

#!/bin/bash

. $VE_DIR/Production_VE/bin/activate

python $0 "$@"

然后我嘗試一下:

hostname:~$prod.sh myscript.py -c arg1 -fu

我收到此錯誤:

  File "/home/username/prod.sh", line 3
    . $VE_DIR/Production_VE/bin/activate
    ^
SyntaxError: invalid syntax

我嘗試切換到源:

#!/bin/bash

source $VE_DIR/Production_VE/bin/activate

python $0 "$@"

錯誤發生了變化,但是現在:

  File "/home/username/prod.sh", line 3
    source $VE_DIR/Production_VE/bin/activate
           ^
SyntaxError: invalid syntax

對於其他情況,我希望能夠在CentOS 6.5 VPS和Mac OS上運行此腳本。

這幅畫怎么了?

謝謝!

在您的bash腳本中,$ 0是“ prod.sh”,不是python腳本。 更改

python $0 "$@"

python "$@"

我剛剛創建了一個與您相似的腳本,並且運行良好。 我認為這真的很奇怪,您為此添加了一個問題。 但是當我看着你的錯誤時:

  File "/home/username/prod.sh", line 3
    source $VE_DIR/Production_VE/bin/activate
           ^
SyntaxError: invalid syntax

它看起來確實像是Python錯誤,而不是bash錯誤。 您的錯誤是,當您這樣做時:

python $0 "$@"

您應該刪除$ 0,因為它包含bash腳本的路徑。

python "$@"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM