Python
uWSGI 和 python 虛擬環境
我正在嘗試將 uWSGI 與虛擬環境一起使用,以便在其上使用 Trac 錯誤跟踪器。
我已經通過 pip 安裝了系統範圍的 uwsgi。
接下來,我在 virtualenv 中安裝了 trac
$ virtualenv venv $ . venv/bin/activate $ pip install trac
然後我編寫了一個簡單的 uWSGI 配置腳本:
[uwsgi] master = true processes = 1 socket = localhost:3032 home = /srv/http/trac/venv/ no-site = true gid = www-data uid = www-data env = TRAC_ENV=/srv/http/trac/projects/my_project module = trac.web.main:dispatch_request
但是當我嘗試啟動它時,它失敗了:
$ uwsgi --http :8000 --ini /etc/uwsgi/vassals-available/my_project.ini --gid www-data --uid www-data ... Set PythonHome to /srv/http/trac/venv/ ... *** Operational MODE: single process *** ImportError: No module named trac.web.main unable to load app 0 (mountpoint='') (callable not found or import error)
我認為 uWSGI 沒有使用虛擬環境。在虛擬環境中,我可以在沒有 ImportError 的情況下導入 trac.web.main。
我怎樣才能做到這一點 ?謝謝
嘗試將其添加到您的 ini 文件中:
plugins = python virtualenv = /path/to/your/venv
您可能還需要
router_basicauth
處理身份驗證。
要使用啟動的 virtualenv,您可以在您的
uwsgi.ini
:; If VIRTAL_ENV is set then use its value to specify the virtualenv directory if-env = VIRTUAL_ENV virtualenv = %(_) endif =