バッチファイルで virtualenv activate する
Windows でタスク処理をする必要が出てきたので、超久しぶり1にバッチファイルを書きました。
と言っても、処理自体は Python で書いて、起動をバッチファイルで行うだけなので簡単・・・と思っていたら、ハマりました。
activate しようとすると止まってしまう
私が最初に書いたバッチファイルが以下です。
test
という名前の virtualenv を activate して、main.py
を実行するだけ。
当然、問題なく動くと思ったのですが、activate.bat
を呼んだ直後に止まってしまうのです2。
"%HOME%\Envs\test\Scripts\activate.bat" cd "%HOME%\tasks" python main.py
バッチファイル中からバッチファイルを呼ぶ時は call
を使う
調べてみたら、バッチファイルを直接記述で呼び出すと止まるらしい3。
参考
というわけで、activate.bat
の呼び出しに call
をつければオーケーでした。
call "%HOME%\Envs\test\Scripts\activate.bat" cd "%HOME%\tasks" python main.py