Linux 如何於 Crontab 執行 Python Virtualenv 環境

Python 都會使用 virtualenv 來開發,Deploy 當然也希望可以建造一個乾淨的 virtualenv 的環境來搬移。

不過 Python 的 venv 執行的參數作法如下:

  1. cd venv
  2. . venv/bin/activate # 進入環境,問題出在這個階段,進不去
  3. pip install -r requirements.txt # 安裝所需套件

Linux 如何於 Crontab 執行 Python Virtualenv 環境

於「. venv/bin/activate」進不去,所以研究看看 activate code 是寫什麼,結果只是簡單的 shell script,所以只要將 "." 改成 "source" 就可以執行囉~

不過於 crontab 寫法還是要稍微注意 PATH 的問題,crontab 寫法參考:

SHELL=/bin/bash
/10 * * * * source /project/venv/bin/activate && /project/bin/exec.py args

相關網頁

關於「Tsung」

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
分類: Programming,標籤: , , , , , 。這篇內容的永久連結

在〈Linux 如何於 Crontab 執行 Python Virtualenv 環境〉中有 4 則留言

  1. 這需求也許可以參考 pipenv run 來解決會更優雅一點

  2. 疾楓表示:

    提供另外一個方式:activate_this.py

    修改 /project/bin/exec.py,在程式碼最上面加上:

    this_file = "/project/venv/bin/activate_this.py"
    execfile(this_file, dict(__file__ = this_file))

    可以讓程式執行時自動 source activate

    PS:python 2.6 以下不適用

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料