loading...
Питоны и Джангоны, нужна Ваша помощь.
В общем, прислали архив проекта на django, его надо развернуть. Собственно
Установил gcc mysql-server python-mysqldb memcached mercurial python-profiler w3m python-setuptools libmysqlclient-dev git-core python-dev rabbitmq-server nginx-full uwsgi uwsgi-plugin-python python-virtualenv
настроил virtualenv, nginx, uwsgi
django-admin.py startproject project прошло хорошо, site.ru показал django проект.
Далее, я установил зависимости:
pip install -r requirements.txt (делал все в окружении)
django
south
Pillow
pytils
pyelasticsearch
mysql-python
gunicorn
celery
celery-with-redis
redis
django-celery
fabric
python-cdb
pymorphy
git+git://github.com/toastdriven/django-haystack.git#egg=django-haystack
git+git://github.com/ff0000/django-sortable.git#egg=django-sortable
git+git://github.com/django-mptt/django-mptt.git#egg=django-mptt
git+git://github.com/feincms/feincms.git #egg=feincms
git+git://github.com/cyberdelia/django-pipeline.git#egg=django-pipeline
git+git://github.com/SmileyChris/easy-thumbnails.git#egg=easy-thumbnails
git+git://github.com/maraujop/django-crispy-forms.git#egg=django-crispy-forms
git+git://github.com/jonasundderwolf/dja ngo-image-cropping.git#egg=django-image-cropping
git+git://github.com/dahlia/wand.git#egg =wand
импортнул БД(mysql), поправил settings.py, в manage.py поправил строку os.environ.setdefault(“DJANGO_SETTINGS_M ODULE”, “bc.settings”)
sudo service nginx restart
sudo service uwsgi restart
Вот логи uwsgi:
Убей автора /home/bc/projects/bc.site.ru/local/lib/p ython2.7/site-packages/converter.py.
Ну или покажи тамошний код.
Бугогашечка
Ну этот файл тоже надо поглядеть “apps/admin/tasks.py”
import time
from django.conf import settings
from celery import task
from converter import Converter
@task
def convert_video(f):
“”” Convert video for file (file is apps.items.File instance) “””
fl = f.file
filename = fl.name.encode(‘utf-8’).replace(‘uploads/’, ”)
path = fl.path
preview_name = ‘alt_previews/%s_%s.mp4’ % (filename, (time.time()))
preview_path = settings.MEDIA_ROOT + ‘/’ + preview_name
c = Converter()
conv = c.convert(path, preview_path, {
‘format’: ‘mp4’,
‘audio’: {
‘codec’: ‘aac’,
},
‘video’: {
‘codec’: ‘h264’,
‘fps’: 30,
‘width’: 640,
‘height’: 480,
}
})
for timecode in conv:
pass
f.preview_alt = preview_name
info = c.probe(path)
duration = info.format.duration
duration_part = int(duration / 2)
thumb_name = ‘previews/%s_%s.png’ % (filename, str(time.time()))
thumb_path = settings.MEDIA_ROOT + ‘/’ + thumb_name
c.thumbnail(path, duration_part, thumb_path)
f.preview = thumb_name
f.save()
@task
def convert_audio(f):
“”” Convert audio for file (file is apps.items.File instance) “””
fl = f.file
filename = fl.name.encode(‘utf-8’).replace(‘uploads/’, ”)
path = fl.path
preview_name = ‘alt_previews/%s_%s.m4a’ % (filename, (time.time()))
preview_path = settings.MEDIA_ROOT + ‘/’ + preview_name
c = Converter()
conv = c.convert(path, preview_path, {
‘format’: ‘mp4’,
‘audio’: {
‘codec’: ‘aac’,
},
})
for timecode in conv:
pass
f.preview_alt = preview_name
f.save()
это tasks.py как я понимаю, а косяк там в Converter, который просит ввода значений из сосноли, которая при запуске в виде демона не очень осмыслена.
я взял закомментировал все что там есть, в итоге 500 ошибка вываливается
а та же 500 или уже другая?
Если рас комментировать task.py то 502 Bad Gateway, если за комментировать то уже 500
ну 502 это значит, что бекенд упал совсем (отвалился с сокета), а 500 это значит что он жив, но падает на реквесте. что в логах во втором случае?
Ясен пень в конвертере, только тот кто его в тасках заюзал не мог не знать, что там ввод с консоли стоит…
По идее конвертер должен вызываться сельдереем, то есть на работе сайта это вообще сказаться не должно.
Ну ладно, хуй с ним, судя по этому куску лога “This is the metric converter
What would you like to convert?” и коду из таскс, ясно видно, что конвертер тупо не тот пакет. Ожидается какой-то биндинг к ffmpeg, а находится какой-то конвертер величин.
# from converter
обратил внимание, что в рекваементах его нет? Подцепился какой-то модуль из уже установленных у тебя вместо конвертера видео.
)) я как бы знаю, что эти ошибки значат, при 502, лог выше постил (pastebin), а при 500 в логах все нормально:
bc.site.ru [pid: 376|app: 0|req: 1/1] xxx.xxx.xxx.xxx () {40 vars in 615 bytes} [Fri May 17 09:39:46 2013] GET / => generated 4 bytes in 241 msecs (HTTP/1.1 500) 1 headers in 78 bytes (1 switches on core 0)
ставь через пип 🙂 мне кажется оно
это лог uwsgi
File “/home/bc/www/bc.site.ru/local/lib/pytho n2.7/site-packages/djcelery/loaders.py”, line 195, in find_related_module
return importlib.import_module(‘%s.%s’ % (app, related_name))
File “/usr/lib/python2.7/importlib/__init__.p y”, line 37, in import_module
__import__(name)
File “./apps/admin/tasks.py”, line 6, in
from converter import Converter
File “/home/bc/www/bc.site.ru/local/lib/pytho n2.7/site-packages/converter.py”, line 6, in
choice = raw_input(‘>’)
EOFError: EOF when reading a line
дык посмотри, верно или нет у тебя конвертер подгружается (через консоль джанги). Оттуда ли 🙂 и нет ли какой-нить коллизии
(bc.site.ru)[email protected]:~/www/bc.site.ru/bc/ap ps$ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import converter
This is the metric converter
What would you like to convert?
You can either convert a measurement, weight or volume
Вроде подгружается.
вот логиhttp://pastebin.com/VczQmJxC
ну совершенно ясно же что это какой-то не тот конвертер, этот нужен что бы в интерактивном режиме величины переводить друг в друга, спроси у разработчика что у него за конвертер.
возможно конвертер для видео либо еще каких то мультимедийных файлов
Мне кажется он просто наркоман 🙂