Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 14, 2010 23:29:01

diego
От:
Зарегистрирован: 2010-09-14
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменные окружения

Доброго времени суток!
Есть внешний скрипт, содержащий

import datetime
from django.conf import settings
from liveproject.liveupdate.models import Update
import urllib
import re
в переменную Path добавлен путь к проекту и также есть переменная DJANGO_SETTINGS_MODULE=liveproject.settings

в pyscripter всё отрабатывает на ура

но пытаюсь из cmd - python script.py
получаю
Traceback (most recent call last):
File "cronjob.py", line 3, in <module>
from liveproject.liveupdate.models import Update
ImportError: No module named liveproject.liveupdate.models
в чём проблема?



Офлайн

#2 Ноя. 17, 2010 18:03:18

Ziberbulger
От:
Зарегистрирован: 2010-05-08
Сообщения: 76
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменные окружения

может он у вас в INSTALLED_APPS не подключен?
и вообще зачем вы пытаетесь интерпретировать scripts.py?
Объясните чего вы хотите добиться?



Офлайн

#3 Ноя. 18, 2010 16:22:09

diego
От:
Зарегистрирован: 2010-09-14
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменные окружения

Вообще хотелось бы чтобы скрипт запускался планировщиком и парсил страницу сайта
где я намудрил?
settings.py

# Django settings for liveproject project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
# ('Your Name', 'your_email@domain.com'),
)

MANAGERS = ADMINS

DATABASES = {
'default': {
'ENGINE': 'sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'c:\\test\\src\\liveproject\\sqlite.db', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}

# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# On Unix systems, a value of None will cause Django to use the same
# timezone as the operating system.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'America/Chicago'

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us'

SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True

# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale
USE_L10N = True

# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"
MEDIA_ROOT = 'c:/test/src/liveproject/liveupdate/media'

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com", "http://example.com/media/"
MEDIA_URL = ''

# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
# trailing slash.
# Examples: "http://foo.com/media/", "/media/".
ADMIN_MEDIA_PREFIX = '/media_admin/'

# Make this unique, and don't share it with anybody.
SECRET_KEY = '6o86-dt5n*^a*y%=pru5!wl=*0*$)fu3bx5%g7!8yeb-9tc+rx'

# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)

ROOT_URLCONF = 'liveproject.urls'

TEMPLATE_DIRS = (
'C:\\test\\src\\liveproject\\liveupdate\\templates' ,
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.admindocs',
'liveproject.liveupdate',

)



Офлайн

#4 Ноя. 18, 2010 18:14:35

Ziberbulger
От:
Зарегистрирован: 2010-05-08
Сообщения: 76
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменные окружения

1. пока локально разрабатывается - может и покатит.
Но, например:

c:\\test\\src\\liveproject\\sqlite.db
любой нормальный хостинг не поймет, ибо путь виндовый.
сам использую такую функцию:
def rel(*x):
return os.path.join(os.path.abspath(os.path.dirname(__file__)), *x)
можете добавить к ней .replace('\\','/') на всякий случай
и использовать проще, не переписывая десятки раз код, а просто, например так:
MEDIA_ROOT = rel('media')
2. Чисто предположение:
from liveproject.liveupdate.models import Update
логично предположить что не может найти такой модуль.
если scripts.py не привязан к джанго-проекту, то возможно стоит опустить liveproject
И вообще какова иерархия файлов и папок?
может код scripts.py?



Офлайн

#5 Ноя. 19, 2010 08:33:25

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Переменные окружения

У вас по всей видимости скрипт запускается без настройки окружения django (DJANGO_SETTINGS_MODULE недостаточно).

Возможно лучшим способом для Вас будет написать команду для manage.py - http://docs.djangoproject.com/en/dev/howto/custom-management-commands/ - в этом случае окружение будет точно правильно настроено.



Офлайн

#6 Ноя. 19, 2010 12:43:09

diego
От:
Зарегистрирован: 2010-09-14
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменные окружения

DJANGO_SETTINGS_MODULE=liveproject.settings

путь к проекту(прописан в переменной path) c:\test\src

положил скрипт в папку c:\test\src (до этого он у меня лежал в c:\test\src\liveproject), скрипт отработал наконец-то, теперь у меня возникает вопрос - если скрипт лежит не в этой дирекотории может быть нужно задавать текущей директорией директорию c:\test\src? ну и второй вопрос - как это сделать, получить нашёл как, а изменить чёт нет.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version