Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 1, 2015 17:23:43

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Перенос проекта на питоне

dimitrez
Блин, всему виной версии модулей… нужно ставить не просто так, а еще и нужные версии :'( это какой то звиздец….
Есть там файл requirements.txt? По хорошему зависимости ставятся одной командой
pip install -r requirements.txt

конечно перед этим должен быть установлен сам pip из дистра или пакета



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#2 Янв. 1, 2015 18:34:39

dimitrez
Зарегистрирован: 2014-12-29
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенос проекта на питоне

MiK
Та не, так быть не должно. У тебя на тестовом сервере всё нормально работает?$ python manage.py runserver
Нет тестового сервера, есть сервер где все работает и есть сервер куда нужно все перенести. Сейчас работаю на виртуальной машине у себя на ноуте - там качаю настройки.
Запуск джанги уже проходит нормльное без ошибок. Сейчас проблема при попытке обратится через http к серверу. Nginx ругается (((

root@debian:/home/tmp/djang0byte# python manage.py runserver
Validating models...
0 errors found
Django version 1.4.16, using settings 'djang0byte.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Офлайн

#3 Янв. 1, 2015 18:43:59

dimitrez
Зарегистрирован: 2014-12-29
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенос проекта на питоне

PooH
Есть там файл requirements.txt? По хорошему зависимости ставятся одной командой
pip install -r requirements.txt

конечно перед этим должен быть установлен сам pip из дистра или пакета

Модули ставил через pip. Проблема сейчас в том что при запросе к nginx идет попытка выполнить скрипты, и ругается что не может портировать нужные методы из модулей. Методом гугления и изучения питона выяснил что некоторые модули при обновлении версии меняют имена методов, соответчтвенно код под старую версию не работает на новой.
Требования по модулям есть - но там в файле только имена модулей - без версий и называется файл deps. Программист который писал сайт говорит “ниче не знаю, ниче не помню, сервак не настраивал, уже все было”.
Сейчас у себя на виртуальной машине ставлю версии модулей к джанге как на статром серваке, что бы уже было про версиям 1в1. Может поможет…

Офлайн

#4 Янв. 2, 2015 03:54:06

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Перенос проекта на питоне

dimitrez

Сейчас у себя на виртуальной машине ставлю версии модулей к джанге как на статром серваке, что бы уже было про версиям 1в1.

Вот для этого и необходимо ставить виртуальное окружение. Команда - virtualenv.

Офлайн

#5 Янв. 2, 2015 04:08:28

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

Перенос проекта на питоне

Может тебе лучше в разделе “джанго” тему создать? Просто тут никто не отвечает, кроме меня, а я и сам новичёк.

Офлайн

#6 Янв. 2, 2015 11:11:32

dimitrez
Зарегистрирован: 2014-12-29
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенос проекта на питоне

MiK
Может тебе лучше в разделе “джанго” тему создать? Просто тут никто не отвечает, кроме меня, а я и сам новичёк.

Да подумал что как бы я новичек и в разделе для новичков создал, что бы не наршуть “правила”, наверное сейчас так и сделаю. Сегодня еще химичу с виртуальным окружением и если опять посыпятся вопросы - тогда уже и создам. В любом случае спасибо!

Офлайн

#7 Янв. 2, 2015 17:34:20

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Перенос проекта на питоне

Старый сервер еще доступен? Можно на нем сохранить все зависимости
pip freeze > requirements.txt и потом поднять на новом
но если там проект установлен в виртуальном окружении, то и pip freeze надо выполнять в этом же окружении.
Хотелось бы подробностей как именно запускается проект, из треда вижу nginx как реверс-прокси, а как запускается сам проект? uwsgi? gunicorn? apache+mod_wsgi?



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#8 Янв. 3, 2015 17:00:20

dimitrez
Зарегистрирован: 2014-12-29
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенос проекта на питоне

проект запускается через выполнение:

./manage.py runfcgi method=prefork host=127.0.0.1 port=8881 pidfile=/tmp/server.pid maxspare=2 maxchildren=2
Далее в nginx для этого вирт хоста идет:
location / {
fastcgi_pass 127.0.0.1:8881; # эти параметры мы укажем потом и при запуске Django-fastcgi
include fastcgi_params;
}
location /media/ {
expires 1M;
rewrite ^(.*)/$ $1;
root /var/djang0byte/djang0byte/;
}
Я так понимаю что стартуется проект, джанга слушает запросы на порт 8881, nginx туда все запросы скидывает и ожидает ответа.

Сам проект работает без виртуальной среды. То как Вы говорите вытащить зависимости - не вышло, уже так пробовал. При попытке запустить установку зависимостей сыпятся ошибки что модули не найдены нужной версии.
Старый сервер еще доступен - на нем все вертится, проплатил его на +1 мес., что бы по человечески разобраться чего там и как.
На данный момент удалось запустить сам проект через manage.py на виртуальной машине, стартует без ошибок, прописал настройки в nginx как и на старом серваке, но при обращении к домену в логи сыпятся ошибки на ненайденые методы:
  File "/home/tmp/djang0byte/register/forms.py", line 1, in <module>
    from captcha.forms import RegistrationFormCaptcha
ImportError: No module named forms" while reading response header from upstream, client: 127.0.0.1, server: weeelinux.ru, request: "GET /
 HTTP/1.1", upstream: "fastcgi/127.0.0.1:8881", host: "weeelinux.ru"

Сейчас еще буду пробовать как говорили выше установить виртуалную среду и в ней настроить

Офлайн

#9 Янв. 12, 2015 15:29:41

dimitrez
Зарегистрирован: 2014-12-29
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенос проекта на питоне

Установил виртуальное окружение, создал в нем проект, выгрузл с рабочего сервера все зависимости, в автомате в виртуальном окружении они не поставились, астично ставил руками, частично стало само (не ставились из за древних версий модулей)
Все вроде как встало, скопировал файлы сайта в виртуальную среду. Активировал виртуальную среду и в ней пытаюсь запустить проект и вот что выдает:

(welinux2)root@debian:~/venv/welinux2# bin/python manage.py runfcgi method=prefork host=127.0.0.1 port=8881 pidfile=/tmp/server.pid maxspare=2 maxchildren=2
/root/venv/welinux2/lib/python2.6/site-packages/MySQL_python-1.2.2-py2.6-linux-i686.egg/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated
Error: cannot import name xrange
(welinux2)root@debian:~/venv/welinux2# 

Погуглил что проблема “Error: cannot import name xrange” связана с тем что нет модуля “haystack”, но при проверке - говорит что он есть:
(welinux2)root@debian:~/venv/welinux2# pip freeze|grep haystack
django-haystack==1.2.5
haystack==0.13
xapian-haystack==1.1.5b0

Версии модулей совпадают с исходным серверов, питон в окружении 2.6 как и на исходном сервере.

Офлайн

#10 Янв. 13, 2015 09:58:47

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Перенос проекта на питоне

dimitrez
Погуглил что проблема “Error: cannot import name xrange” связана с тем что нет модуля “haystack”, но при проверке - говорит что он есть:

Серьезно? Погуглите на тему отличия python2 от python3, затем замените в исходниках xrange на range.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version