2012-08-13 35 views
5

django + nginx + uwsgi çalıştırıyorum. Nedense, sanal ortama işaret ederek, ev seçeneğini ayarlamadan uWSGI'yı başlatamıyorum. Her ne zaman uWSGI onsuz başladığında, python yolunun boş olması gibi (ancak django 1.4 sistem çapında kurulu) gibi django.core.wsgi modülünü bulamadığını söylüyor.virtualenv (ImportError) olmadan uWSGI sunucusunu başlatamıyor

Nasıl düzeltebilirim?

+1

. Django'nun yüklü olduğu sanal ortamı belirtmek için 'home' seçeneğini kullanmanız gerekir. Aksi takdirde, uwsgi django'nun yüklü olmadığı sistem çapında çalışacaktır. [Uwsgi örneğine bakın] (http://projects.unbit.it/uwsgi/wiki/VirtualEnv). –

+1

@ TimmyO'Mahony, soruyu yakından incelerseniz, django'nun "sistem çapında" kurulduğundan bahsettiğimi görebilirsiniz. – DataGreed

+0

Daha net olmasını sağlamak için bunu düzenlerim – DataGreed

cevap

15

Bu konuda da kafama çarptığımdan, herkes için bir cevap yazalım. :) Sorun, imparator modunda (sistem genelinde) başlatıldığında, uwsgi master işleminin python (PYTHONPATH) için doğru ortamı yükleyememesi (veya yapmayacağı) olmasıdır. Sanallaştırmayı kullanarak ortamı belirtirsiniz. Bu olmadan, sistem genelinde python yollarını işaret eden birden çok kez bile pythonpath değişkenini ayarlamanız gerekir.

Sadece bir örnek olarak, benim sistem için bu kadar: yanlış bir şey yok

(ini sözdizimi kullanılarak)
pythonpath = /usr/local/lib/python2.7/dist-packages 
pythonpath = /usr/lib/python2.7 

+0

Bu hata, MacOS sisteminde değil, aynı yapılandırma dosyasında centos6 ile karşılaşıyorum. Yapılandırma dosyasında 'virtualenv' ekledikten sonra düzeltin. Bu durumu açıklayabilir misiniz? Çalışan komut '/ path_to_venv/bin/uwsgi -y uwsgi.conf' –

+0

@SiminJie özür dilerim MacOS kullanmıyorum. Ve ben bir sunucu olarak kullanmazdım. –