2013-03-13 36 views
0

我沒有manage.py並使用DJANGO_SETTINGS_MODULEdjango-admin.py的不同設置在開發環境和生產環境之間切換。 Django docs和pydanny在「Django 2 Scoops」中都提到了這一點。django-admin.py和適當的方式來改變Dotcloud上的PYTHONPATH?

我的項目位於/home/dotcloud/current/bipolar。我的設置在/home/dotcloud/current/bipolar/bipolar/settings/dotcloud.py之後,遵循Django 1.5目錄結構。 DJANGO_SETTINGS_MODuLE設置爲dotcloud.ymlbipolar.settings.dotcloud

我很難讓事情運行Dotcloud。當我按照示例教程時,我已經必須將export PYTHONPATH=/home/dotcloud/current/(hellodjango|bipolar):$PYTHONPATH添加到postinstall腳本。

使用主管啓動芹菜時,事情變得非常多毛。我試圖運行命令django-admin.py celery worker。但不管我如何設法讓我的PYTHONPATH設置爲/home/dotcloud/current/bipolar,它都沒有拿起。我在supervisord.conf無濟於事都嘗試

command = "PYTHONPATH=/home/dotcloud/current/bipolar:$PYTHONPATH django-admin.py celery worker --loglevel=INFO -E" 

environment=PYTHONPATH="/home/dotcloud/current/bipolar" 

。我已經嘗試將東西移動到一個shell腳本,在運行之前設置路徑......畢竟這適用於postinstall!它在shell上運行時工作,但在部署機器時不起作用。

所以建議任何幫助!

編輯:我從此嘗試過多件事情。我重新添加了一個manage.py,它們都設置了正確的sys.pathDJANGO_SETTINGS_MODULE,但無濟於事。最後,我添加了一個python-worker服務,除了失敗兩次(supervisord.conf獲取了這兩個服務的讀取權限?)之外,沒有取得任何成效。

回答

0

原來the docs是錯誤的。人們不能在supervisord.conf中設置directory = $HOME/current/。用/home/dotcloud/current/代替它,你很好走。

我仍然無法獲得django-admin.py的工作;我假設它在virtualenv之外被Python二進制文件調用。我發現manage.py有點哈克;有沒有更好的辦法?

我的工作supervisord.conf

[program:celery_beat] 
directory = /home/dotcloud/current/bipolar/ 
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log 
stdout_logfile = /var/log/supervisor/%(program_name)s.log 
command = /home/dotcloud/env/bin/python manage.py celery beat --loglevel=INFO 

[program:celery_worker] 
directory = /home/dotcloud/current/bipolar/ 
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log 
stdout_logfile = /var/log/supervisor/%(program_name)s.log 
command = /home/dotcloud/env/bin/python manage.py celery worker -E --loglevel=INFO 
0

我知道這可能無法正常工作,但你嘗試過:

command = "cd /home/dotcloud/current/bipolar && django-admin.py celery worker --loglevel=INFO -E" 
+0

不,我沒有。我沒有在'supervisord.conf'中提到,我也設置了'directory = $ HOME/current/bipolar /'。但我現在試了,它給了我: '2013-03-14 08:03:35,217信息spawnerr:找不到命令'cd/home/dotcloud/current/bipolar && django-admin.py芹菜工--loglevel = INFO -E''路徑是正確的;在控制檯中執行復制粘貼命令會再次導致「ImportError:無法導入設置'bipolar.settings.dotcloud''。但是當我放入該目錄下的python shell時,我可以很好地導入它。 – 2013-03-14 08:32:40