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

конечно перед этим должен быть установлен сам pip из дистра или пакета
dimitrez
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.
dimitrez
PooH
Есть там файл requirements.txt? По хорошему зависимости ставятся одной командой
pip install -r requirements.txt

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

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

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

Да подумал что как бы я новичек и в разделе для новичков создал, что бы не наршуть “правила”, наверное сейчас так и сделаю. Сегодня еще химичу с виртуальным окружением и если опять посыпятся вопросы - тогда уже и создам. В любом случае спасибо!
PooH
Старый сервер еще доступен? Можно на нем сохранить все зависимости
pip freeze > requirements.txt и потом поднять на новом
но если там проект установлен в виртуальном окружении, то и pip freeze надо выполнять в этом же окружении.
Хотелось бы подробностей как именно запускается проект, из треда вижу nginx как реверс-прокси, а как запускается сам проект? uwsgi? gunicorn? apache+mod_wsgi?
dimitrez
проект запускается через выполнение:
./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"

Сейчас еще буду пробовать как говорили выше установить виртуалную среду и в ней настроить
dimitrez
Установил виртуальное окружение, создал в нем проект, выгрузл с рабочего сервера все зависимости, в автомате в виртуальном окружении они не поставились, астично ставил руками, частично стало само (не ставились из за древних версий модулей)
Все вроде как встало, скопировал файлы сайта в виртуальную среду. Активировал виртуальную среду и в ней пытаюсь запустить проект и вот что выдает:
(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 как и на исходном сервере.
Alen
dimitrez
Погуглил что проблема “Error: cannot import name xrange” связана с тем что нет модуля “haystack”, но при проверке - говорит что он есть:

Серьезно? Погуглите на тему отличия python2 от python3, затем замените в исходниках xrange на range.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB