Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Запуск скрипта. Ошибка с Импотром модуля. [RSS Feed]

#1 Ноя. 26, 2010 18:09:24

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск скрипта. Ошибка с Импотром модуля.

Здравствуйте.
Необходимо на сервере запустить скрипт написанный на Python располагающийся в файле script.py

Запускаю просто идя в папку через PuTYY, и выполняю >python script.py
На что мне выдаёт ошибку: ImportError: No module named <имя моей модели>

До этого писал подобные скрипты и выполнял их подобным образом, всё выполнялось замечательно, аналогично поступаю и на другом сервере.
Пробовал запускать shell и подключать там модель, подключилось сразу, бес проблем. Выполнил запрос через ORM к этой модели, так же всё хорошо.
Мне подсказывали дописать в самом начале файла:
import sys
sys.path.append('путь где лежит скрипт')
Не помогло.
sys.path.append('путь где лежит модель')
Не помогло.
from manage import *
Снова ошибки, только теперь не находило ImportError: No module named django.conf

(Последнее действия выполнял по совету, не осознавая для чего.)
Подскажите пожалуйста в чём может быть проблема, ибо кроме вышеуказанных мер ничего не смог в инэте найти. Локально всё работает.



Офлайн

#2 Ноя. 27, 2010 01:48:49

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Запуск скрипта. Ошибка с Импотром модуля.

Что за “модель”? Как выглядит скрипт?



Офлайн

#3 Ноя. 29, 2010 09:44:02

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск скрипта. Ошибка с Импотром модуля.

Александр Кошелев
Что за “модель”? Как выглядит скрипт?
Обычная модель таблицы БД
.....
Подключение всяко разного
from django.contrib import admin
from django.conf import settings
from django.db import models
.....

class Post(BaseAbstractModel):

title = models.CharField(_('title'), max_length = 120)
content = models.TextField(verbose_name = _("post content"))
created = models.DateTimeField(_('created'), auto_now_add = True)
....

def __unicode__(self):
return self.title

def get_absolute_url(self):
....
Подключение модели в скрипте:
# -*- coding: utf-8 -*-

import sys
sys.path.append('/home/site/')

from feelgood.modules.blog.models.post import Post
import re

rows = Post.objects.all()
....
Сам скрипт прост, нет смысла приводить. Вынимает все данные, кое что в них ищет и заменяет на нужное, через ORM перезаписывает.



Офлайн

#4 Ноя. 29, 2010 09:55:30

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Запуск скрипта. Ошибка с Импотром модуля.

Джанга есть в путях? Окружение Джанги настроено?



Офлайн

#5 Ноя. 29, 2010 13:13:09

KarDer_Groom
От:
Зарегистрирован: 2009-11-17
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск скрипта. Ошибка с Импотром модуля.

Всё заработало, помогли из вне. Проблема была в следующем:
1) Прописать нужно было:
#!/путь_к_питону/bin/python
from manage import *
2) Запускать ./script.py Я же запускал раньше python script.py

Из этого вытекает ещё один вопрос, чем отличаются эти 2 запуска и где, как этим управлять возможно?



Офлайн

#6 Ноя. 30, 2010 01:31:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Запуск скрипта. Ошибка с Импотром модуля.

была похожая проблема

import sys
sys.path.insert(0, '')
это было просто на питоне 3
выглядело так: при запуске интерпретатора можно было сделать os.chdir('папка'), чтобы можно было сделать import papka_module, который там лежал
но при запуске через python3 main.py это не работало, хотя переход в папку происходил

различия нашёл в sys.path и в скрипте добавил вставку



Отредактировано (Ноя. 30, 2010 01:36:35)

Офлайн

  • Начало
  • » Django
  • » Запуск скрипта. Ошибка с Импотром модуля.[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version