2015-09-29 5 views
1

Я пытался получить проект, запущенный с помощью Cookiecutter Django, и я не могу правильно подключиться к базе данных.Cookiecutter Django не играет хорошо с PostgreSQL

Вот что я сделал:

pip install cookiecutter

cookiecutter https://github.com/pydanny/cookiecutter-django.git

И затем заполнили ответы на все вопросы и побежал pip install -r requirements/local.txt также подробную here.

Тогда я побежал Psql и сделал:

CREATE DATABASE example; 
CREATE USER example_user WITH PASSWORD 'password'; 

Вслед за export DATABASE_URL=postgres://example_user:[email protected]:5432/example (за пределами PSQL, но в моем virtualenv, хотя я пытался его вне virtualenv, а).

Затем, после запуска python manage.py migrate, как описано в приведенной выше ссылке, я получаю это:

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/core/management/__init__.py", line 312, in execute 
    django.setup() 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models 
    self.models_module = import_module(models_module_name) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/contrib/auth/models.py", line 41, in <module> 
    class Permission(models.Model): 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/models/base.py", line 139, in __new__ 
    new_class.add_to_class('_meta', Options(meta, **kwargs)) 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/models/base.py", line 324, in add_to_class 
    value.contribute_to_class(cls, name) 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/models/options.py", line 250, in contribute_to_class 
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/__init__.py", line 36, in __getattr__ 
    return getattr(connections[DEFAULT_DB_ALIAS], item) 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/utils.py", line 240, in __getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/django/db/utils.py", line 111, in load_backend 
    return import_module('%s.base' % backend_name) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/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: dlopen(/Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Symbol not found: _lo_lseek64 
    Referenced from: /Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/psycopg2/_psycopg.so 
    Expected in: /usr/lib/libpq.5.dylib in /Users/maxwellskala/.virtualenvs/shred/lib/python2.7/site-packages/psycopg2/_psycopg.so 

Для полного раскрытия, я первый пытался следовать руководству нашли here, а также официальные документы, не увенчались успехом.

После неудачной попытки Google я сломался и отправил по электронной почте другого пользователя SO, который рекомендовал мне пропустить все материалы о разрешениях и т. Д. И «просто использовать созданную часть этого», что я объяснил выше. Я все еще получаю ту же ошибку.

Одна теория, которую я имею, состоит в том, что она имеет какое-то отношение к нескольким версиям Python на моей машине. См. this вопрос. В принципе, если (в моем надлежащем virtualenv) Я бегу python manage.py migrate я получаю вышеуказанную ошибку, но если я бегу python 3.4 manage.py migrate, я получаю

Traceback (most recent call last): File "manage.py", line 8, in <module> from django.core.management import execute_from_command_line ImportError: No module named 'django'

который также сбивает с толку меня, потому что я четко иметь Django установлен в соответствии с вызовом пип Я сделал выше.

+0

У вас возникла проблема с вашей библиотекой _psycopg.so. См. [Здесь] (http://comments.gmane.org/gmane.comp.python.db.psycopg.devel/5662), они говорят, что он может быть построен для неправильной архитектуры. – solarc

ответ

0

Ваша основная проблема заключается в том, что psycopg2 не загружается. Исправить:

  1. Убедитесь, что ваш virtualenv активен.
  2. Удалить psycopg2 из вашего virtualenv (pip uninstall psycopg2). Проверьте каталог вашего сайта virtualenv, чтобы убедиться, что он ушел.
  3. Переустановите psycopg2 в свой virtualenv. Поскольку похоже, что вы находитесь на OS X, вы должны сделать это через pip install psycopg2 или переустановить локальные требования.

Затем, чтобы создать свою базу данных, сделайте createdb shred или как бы то ни было, как указано в ваших настройках. Это должно соответствовать введенному вами значению для repo_name.

Смежные вопросы