Psycopg2 не связан правильно, неправильно включает или что-то? - PullRequest
0 голосов
/ 06 сентября 2011

У меня проблемы с работой Django с базой данных postgresl на моем провайдере веб-хостинга.

Моя ситуация такова: у меня есть аккаунт на моем провайдере веб-хостинга, у меня нет привилегий root иливозможность установки чего угодно, кроме локально в моей домашней папке.Я запускаю Django через fcgi (потому что это единственный способ для меня, на самом деле).Я пытаюсь конвертировать мой сайт, чтобы использовать Django.Сервер веб-хостинга работает на 64-битной (Debian или что-то особенное, я думаю).

После МНОГО проблем с включениями (и особенно с тем, где разместить все включения), я довольно далеко продвинулся, и материал Django в основном работаеткроме подключения к моей базе данных postgresql.Я "установил" (то есть не заархивировал и поместил в мою папку $ PYTHONPATH) Django и psycopg2 в мою папку ~ / python-modules /.

Но по какой-то причине я получаю это при попытке сделать python manage.py syncdb:

> Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    execute_manager(settings)
  File "/home/users/username/python-modules/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/home/users/username/python-modules/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/users/username/python-modules/django/core/management/__init__.py", line 261, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/home/users/username/python-modules/django/core/management/__init__.py", line 67, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/home/users/username/python-modules/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/home/users/username/python-modules/django/core/management/commands/syncdb.py", line 7, in <module>
    from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
  File "/home/users/username/python-modules/django/core/management/sql.py", line 6, in <module>
    from django.db import models
  File "/home/users/username/python-modules/django/db/__init__.py", line 78, in <module>
    connection = connections[DEFAULT_DB_ALIAS]
  File "/home/users/username/python-modules/django/db/utils.py", line 93, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/home/users/username/python-modules/django/db/utils.py", line 33, in load_backend
    return import_module('.base', backend_name)
  File "/home/users/username/python-modules/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/home/users/username/python-modules/django/db/backends/postgresql_psycopg2/base.py", line 24, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: /home/users/username/python-modules/psycopg2-2.4.2/build/lib.linux-x86_64-2.6/psycopg2/_psycopg.so: undefined symbol: PyByteArray_Type

В настоящее время я понятия не имею, почему он не может найти базовый тип данных Python.Psycopg2 связан с неверной версией Python или чем-то еще?

1 Ответ

0 голосов
/ 06 сентября 2011

да, похоже на проблему с версиями.точнее, запуск Python ниже, чем тот, который построен для psycopg2 (2.6)

, вы можете проверить версию python, запустив 'python -V' или вызвав 'sys.version_info', но если ваш дистрибутив являетсяDebian стабильный, тогда Python по умолчанию - 2.5

...