2015-08-24 49 views
0

我試圖寫一個腳本(使用Apache的mod_wsgi)開始在我的生產環境中的服務器引用:Django的manage.py runserver命令失敗,陌生的臨時PIP編譯目錄

#!/bin/bash 

#activate virtualenv 
source ~/.virtualenvs/myproj/bin/activate 

# install possibly changed requirements 
echo "Checking changed dependencies..." 
pip3 install --no-cache-dir -r /opt/myDjangoProj/requirements.txt 
deactivate 

# run server 
echo "Starting django server ..." 
#export DJANGO_SETTINGS_MODULE='myDjangoProj.settings.production' 

~/.virtualenvs/myproj/bin/python3 /opt/myDjangoProj/manage.py runserver 8000 --settings myDjangoProj.settings.production 

不過,我alwas得到這個堆棧跟蹤:(安裝要求正常工作,所以我忽略它)

Starting django server ... 
Traceback (most recent call last): 
    File "/opt/myDjangoProj/manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/localadm/.virtualenvs/myproj/lib/python3.2/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
    File "/home/localadm/.virtualenvs/myproj/lib/python3.2/site-packages/django/core/management/__init__.py", line 312, in execute 
    django.setup() 
    File "/home/localadm/.virtualenvs/myproj/lib/python3.2/site-packages/django/__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/home/localadm/.virtualenvs/myproj/lib/python3.2/site-packages/django/apps/registry.py", line 115, in populate 
    app_config.ready() 
    File "/tmp/pip-build-w8vru4/Django/django/contrib/admin/apps.py", line 22, in ready 
    File "/tmp/pip-build-w8vru4/Django/django/contrib/admin/__init__.py", line 24, in autodiscover 

目錄/ tmp/PIP-集結w8vru4 /實際上並不存在。你有什麼想法可能是什麼問題?

+4

[不要在生產環境中使用runserver!](https://docs.djangoproject.com/en/1.8/ref/django-admin/#runserver-port-or-address-port) – Alasdair

+0

使用modwsgi包: https://pypi.python.org/pypi/mod_wsgi。 您可以按照說明並通過virtualenv命令啓動服務器:'mod_wsgi-express start-server'。 – Maikflow

+0

從'.pyc'文件加載'Django/django/contrib/admin/apps.py'嗎?如果是這樣,那可能是不存在的目錄出現的原因。根據它們的編譯方式,'.pyc'文件可以記住'.py'文件的原始路徑,即使它不再存在。 –

回答

0

首先,我們在使用mod_wsgi時通常不需要shell腳本。

參考https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/與mod_wsgi的設立Django的

其次你的工作目錄沒有接縫是Django項目根。切換到django項目根目錄或將其包含在PYTHONPATH中。

+0

如果使用mod_wsgi-express,可能需要Shell腳本。聽起來你可能不知道它。請參閱https://pypi.python.org/pypi/mod_wsgi –

相關問題