Найти - Пользователи
Полная версия: ImportError: cannot import name utils, FreeBSD, Apache mod_wsgi, Python 2.6, Djando 1.4
Начало » Django » ImportError: cannot import name utils, FreeBSD, Apache mod_wsgi, Python 2.6, Djando 1.4
1
S
Что не так у меня?
Дано - пустой проект с админкой. В венде на девсервере работает, в венде на апаче работает.
На какие натыкался решения - например отсутствие прав нужных. Я папке с проектом и всем файл сделал владельца www. Ничего не изменилось.
На VPS не работает, выдаёт в лог ImportError: cannot import name utils:
  return node.render(context)
File "/usr/local/lib/python2.6/site-packages/django/template/debug.py", line 84, in render
  output = self.filter_expression.resolve(context)
File "/usr/local/lib/python2.6/site-packages/django/template/base.py", line 599, in resolve
  new_obj = func(obj, *arg_vals)
File "/usr/local/lib/python2.6/site-packages/django/template/defaultfilters.py", line 718, in date
  return format(value, arg)
File "/usr/local/lib/python2.6/site-packages/django/utils/dateformat.py", line 310, in format
  return df.format(format_string)
File "/usr/local/lib/python2.6/site-packages/django/utils/dateformat.py", line 33, in format
  pieces.append(force_unicode(getattr(self, piece)()))
File "/usr/local/lib/python2.6/site-packages/django/utils/dateformat.py", line 214, in r
  return self.format('D, j M Y H:i:s O')
File "/usr/local/lib/python2.6/site-packages/django/utils/dateformat.py", line 33, in format
  pieces.append(force_unicode(getattr(self, piece)()))
File "/usr/local/lib/python2.6/site-packages/django/utils/encoding.py", line 71, in force_unicode
  s = unicode(s)
File "/usr/local/lib/python2.6/site-packages/django/utils/functional.py", line 121, in __unicode_cast
  return func(*self.__args, **self.__kw)
File "/usr/local/lib/python2.6/site-packages/django/utils/translation/__init__.py", line 86, in ugettext
  return _trans.ugettext(message)
File "/usr/local/lib/python2.6/site-packages/django/utils/translation/trans_real.py", line 278, in ugettext
  return do_translate(message, 'ugettext')
File "/usr/local/lib/python2.6/site-packages/django/utils/translation/trans_real.py", line 268, in do_translate
  _default = translation(settings.LANGUAGE_CODE)
File "/usr/local/lib/python2.6/site-packages/django/utils/translation/trans_real.py", line 183, in translation
  default_translation = _fetch(settings.LANGUAGE_CODE)
File "/usr/local/lib/python2.6/site-packages/django/utils/translation/trans_real.py", line 160, in _fetch
  app = import_module(appname)
File "/usr/local/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/usr/local/lib/python2.6/site-packages/django/contrib/admin/__init__.py", line 3, in <module>
  from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
File "/usr/local/lib/python2.6/site-packages/django/contrib/admin/helpers.py", line 2, in <module>
  from django.contrib.admin.util import (flatten_fieldsets, lookup_field,
File "/usr/local/lib/python2.6/site-packages/django/contrib/admin/util.py", line 1, in <module>
  from django.db import models
File "/usr/local/lib/python2.6/site-packages/django/db/__init__.py", line 40, in <module>
  backend = load_backend(connection.settings_dict['ENGINE'])
File "/usr/local/lib/python2.6/site-packages/django/db/__init__.py", line 34, in __getattr__
  return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/usr/local/lib/python2.6/site-packages/django/db/utils.py", line 92, in __getitem__
  backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python2.6/site-packages/django/db/utils.py", line 24, in load_backend
  return import_module('.base', backend_name)
File "/usr/local/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/usr/local/lib/python2.6/site-packages/django/db/backends/sqlite3/base.py", line 14, in <module>
  from django.db import utils
[Thu May 31 10:10:25 2012] [error] [client 94.251.104.247] ImportError: cannot import name utils

Из httpd.conf
<VirtualHost ip:80>
        bla-bla-bla by ISP manager
	WSGIScriptAlias / /home/hayate/data/djcode/petrov/petrov/wsgi.py
</VirtualHost>

wsgi.py:
import os
from os.path import split
import sys
sys.path.append('/usr/local/lib/python2.6/site-packages/django')
sys.path.append('/home/hayate/data/djcode/petrov')
#sys.path.append(split(os.path.dirname(os.path.abspath(__file__)))[0].replace('\\','/'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'petrov.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

settings.py
import os
from os.path import split
#SITE_ROOT = split(os.path.dirname(os.path.abspath(__file__)))[0].replace('\\','/')
SITE_ROOT = '/home/hayate/data/djcode/petrov'
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': SITE_ROOT + '/database.db',                      # Or path to database file if using sqlite3.
bla-bla-bla
    }
}
MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = SITE_ROOT + '/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
)
bla-bla-bla
ROOT_URLCONF = 'petrov.urls'
WSGI_APPLICATION = 'petrov.wsgi.application'
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)
FishHook
Может глупость скажу. Попробуй в сеттингах указать путь до джанги, как то так
sys.path.append('/urs/local/lib/python2.7/dist-packages')
S
На фряхе фирствдс в /usr/local/lib/python2.6 нет папки dist-packages
FishHook
S
На фряхе фирствдс в /usr/local/lib/python2.6 нет папки dist-packages
Значит надо найти где джанга стоит во фряхе (если вообще установлена), это уже другой вопрос.
S
FishHook
S
На фряхе фирствдс в /usr/local/lib/python2.6 нет папки dist-packages
Значит надо найти где джанга стоит во фряхе (если вообще установлена), это уже другой вопрос.
Чего там искать:
hayate# python
Python 2.6.8 (unknown, May  3 2012, 02:34:25)
[GCC 4.2.1 20070831 patched [FreeBSD]] on freebsd8
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.__path__
['/usr/local/lib/python2.6/site-packages/django']
>>>
И этот путь я в wsgi.py добавлял, это видно в первом сообщении. Не работает.
kmike
А чего виртуаленв не используете?

Кроме того, добавленные в sys.path пути кажутся неправильными. Например, если есть папка “/foo/bar/” и в sys.path добавить “/foo/”, то заработает import bar (а не import foo и import foo.bar).
Chern
https://code.djangoproject.com/ticket/16136

Может будет полезно
S
Стыд конечно стыдный, но просто не было пакета py-sqlite3. Обнаружил это когда решил поставить для пробы питон 2.7, который после установки выдал предупреждение, что по-умолчанию py-sqlite3 и ряд других пакетов не устанавливается. Установил и почти всё заработало, кроме syncdb, но то косяки с локалью были, которые починены дописыванием русского в passwd.
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