web-dev-qa-db-ja.com

「ソースビン/アクティブ化」の実行を開始できないのはなぜですか?

upstartは、何らかの理由で私のvirtualenvをアクティブにしません。

これは私がそれを実行する方法です

script
    # My startup script, plain old Shell scripting here.
    cd path/to/env
    source bin/activate
    ....
end script

手動で開始すると、virtualenvは正常に実行されます

なぜこれが機能しないのですか?

30
Calum

だから私はそれを解決しました、何らかの理由でupstartは 'source'を使用するのが好きではないので、私は次のように行を変更しました:

source bin/activate

. bin/activate

それはうまくいきますが、理由はわかりませんので、誰かがこれを説明できれば興味があります

52
Calum

sourceはbashの組み込みコマンドですが、posixの「特別な」コマンドのみです。

Upstartは、スクリプトセクションの実行時にsh -eを実行します。

shShellはsourceを理解せず、.のみを理解します

42