Eu mesmo encontrei a resposta depois de pesquisar um pouco sobre os documentos da uwsgi.
Referência, link , podemos especificar a lógica de configuração e calcular dinamicamente os caminhos, fazendo uso de variáveis de ambiente, enquanto em um virtualenv python.
Portanto, supondo que eu esteja atualmente em meu myproject
virtualenv, minha configuração .ini calculará automaticamente meus caminhos para as opções de configuração chdir
e virtualenv
.ini da seguinte forma:
[uwsgi]
if-env = PROJECT_HOME
print = Your path is %(_)/myproject
chdir = %(_)/myproject
endif =
if-env = VIRTUAL_ENV
print = Your virtualenv is %(_)
virtualenv = %(_)
endif =
socket=127.0.0.1:3034
module=django.core.handlers.wsgi:WSGIHandler()
env= DJANGO_SETTINGS_MODULE=bbox.settings
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/var/log/uwsgi/yourproject.log
A instrução print é opcional, é claro, mas isso dá ao binário uwsgi os valores para chdir
e virtualenv
que ele está esperando.
Algo parecido com isto:
calvin$ uwsgi --ini myproject/uwsgi.ini
[uWSGI] getting INI configuration from myproject/uwsgi.ini
Your path is /Users/calvin/work/myproject
Your virtualenv is /Users/calvin/.virtualenvs/myproject
*** Starting uWSGI 1.2.4 (64bit) on [Thu Jul 26 17:00:04 2012] ***
compiled with version: 4.2.1 Compatible Apple Clang 3.1 (tags/Apple/clang-318.0.61) on 25 July 2012 20:06:56
detected number of CPU cores: 8
As instruções de impressão são desnecessárias no seu arquivo .ini final, é claro. Estou apenas colocando-os lá para imprimir as informações necessárias que confirmam que meus caminhos são calculados dinamicamente no arquivo .ini.