Найти - Пользователи
Полная версия: Настройка django, python в debian 8 jessie
Начало » Django » Настройка django, python в debian 8 jessie
1
mdlv
На чистом debian 8 не получается настроить django 1.8, python 3.4.2. Хочу использовать postgresql 9.4, он уже установлен и работает, бд и пользователь для джанго имеются. Создан джанго-проект, в настройках settings.py есть
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'myproject',
        'USER': 'myprojectuser',
        'PASSWORD': 'mypass',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

При попытке
python manage.py syncdb
Выдает следующее:
Traceback (most recent call last):
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 20, in <module>
    import psycopg2 as Database
ImportError: No module named 'psycopg2'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/core/management/__init__.py", line 312, in execute
    django.setup()
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/var/www/myproject/env/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/contrib/auth/models.py", line 41, in <module>
    class Permission(models.Model):
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/db/models/base.py", line 139, in __new__
    new_class.add_to_class('_meta', Options(meta, **kwargs))
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/db/models/base.py", line 324, in add_to_class
    value.contribute_to_class(cls, name)
  File "/var/www/myproject/env/lib/python3.4/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 "/var/www/myproject/env/lib/python3.4/site-packages/django/db/__init__.py", line 36, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/db/utils.py", line 240, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/db/utils.py", line 111, in load_backend
    return import_module('%s.base' % backend_name)
  File "/var/www/myproject/env/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "/var/www/myproject/env/lib/python3.4/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: No module named 'psycopg2'

При попытке
sudo pip3 install psycopg2
:
pip3  install psycopg2
Downloading/unpacking psycopg2
  Downloading psycopg2-2.6.1.tar.gz (371kB): 371kB downloaded
  Running setup.py (path:/tmp/pip-build-ui2ldts8/psycopg2/setup.py) egg_info for package psycopg2
Installing collected packages: psycopg2
  Running setup.py install for psycopg2
    Skipping implicit fixer: buffer
    Skipping implicit fixer: idioms
    Skipping implicit fixer: set_literal
    Skipping implicit fixer: ws_comma
    building 'psycopg2._psycopg' extension
    i586-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DPSYCOPG_$
    In file included from psycopg/psycopgmodule.c:27:0:
    ./psycopg/psycopg.h:30:20: fatal error: Python.h: Нет такого файла или каталога
     #include <Python.h>
                        ^
    compilation terminated.
    error: command 'i586-linux-gnu-gcc' failed with exit status 1
    Complete output from command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-ui2ldts8/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)$
    running install
running build
running build_py
creating build
creating build/lib.linux-i686-3.4
creating build/lib.linux-i686-3.4/psycopg2
copying lib/pool.py -> build/lib.linux-i686-3.4/psycopg2
copying lib/tz.py -> build/lib.linux-i686-3.4/psycopg2
...
copying tests/test_transaction.py -> build/lib.linux-i686-3.4/psycopg2/tests
copying tests/test_cursor.py -> build/lib.linux-i686-3.4/psycopg2/tests
copying tests/test_module.py -> build/lib.linux-i686-3.4/psycopg2/tests
Skipping implicit fixer: buffer
Skipping implicit fixer: idioms
Skipping implicit fixer: set_literal
Skipping implicit fixer: ws_comma
running build_ext
building 'psycopg2._psycopg' extension
creating build/temp.linux-i686-3.4
creating build/temp.linux-i686-3.4/psycopg
i586-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DPSYCOPG_DEFA$
In file included from psycopg/psycopgmodule.c:27:0:
./psycopg/psycopg.h:30:20: fatal error: Python.h: Нет такого файла или каталога
 #include <Python.h>
                    ^
compilation terminated.
error: command 'i586-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Cleaning up...
Command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-ui2ldts8/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace$

Про Python.h погуглил, пишут, что нужно установить python-dev.
При попытке sudo apt-get install python-dev выдается ошибка:

Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:
Пакеты, имеющие неудовлетворённые зависимости:
 python-dev : Зависит: libpython-dev (= 2.7.9-1) но он не будет установлен
              Зависит: python2.7-dev (>= 2.7.9-1~) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.


Update:
Установил-таки python3-psycopg2 через aptitude. Но в виртуальном окружении при выполнении syncdb те же ошибки, не видит psycopg2

Вне виртуального окружения:
dpkg -l "*psycopg2*"
Результат:
Желаемый=неизвестно[u]/установить[i]/удалить[r]/вычистить[p]/зафиксировать[h]
| Состояние=не[n]/установлен[i]/настроен[c]/распакован[U]/частично настроен[F]/
            частично установлен[H]/trig-aWait/Trig-pend
|/ Ошибка?=(нет)/требуется переустановка[R] (верхний регистр
в полях состояния и ошибки указывает на ненормальную ситуацию)
||/ Имя                           Версия              Архитектура         Описание
+++-=============================-===================-===================-================================================================
un  python-psycopg2-doc           <нет>               <нет>               (описание недоступно)
ii  python3-psycopg2              2.5.4+dfsg-1        i386                Python 3 module for PostgreSQL
un  python3.4-psycopg2            <нет>               <нет>               (описание недоступно)
FishHook
python 3.4.2.
python-dev : Зависит: libpython-dev (= 2.7.9-1) но он не будет установлен
Вам нужны заголовочные файлы для питона 3.4, а вы ставите для 2.7
J.R.
.
mdlv
J.R.
И посмотрите, чтоб для postgres был девел тоже установлен, psycopg2 без него не встанет по-моему.
dpkg -l "*postgresql*dev*"
Желаемый=неизвестно[u]/установить[i]/удалить[r]/вычистить[p]/зафиксировать[h]
| Состояние=не[n]/установлен[i]/настроен[c]/распакован[U]/частично настроен[F]/
            частично установлен[H]/trig-aWait/Trig-pend
|/ Ошибка?=(нет)/требуется переустановка[R] (верхний регистр
в полях состояния и ошибки указывает на ненормальную ситуацию)
||/ Имя                           Версия              Архитектура         Описание
+++-=============================-===================-===================-================================================================
ii  postgresql-server-dev-9.4     9.4.3-0+deb8u1      i386                development files for PostgreSQL 9.4 server-side programming

J.R.
apt-cache search python3-dev
apt-cache search python3-dev
games-python3-dev - development of games in Python 3
libpython3-dev - header files and a static library for Python (default)
python3-dev - header files and a static library for Python (default)


FishHook
Вам нужны заголовочные файлы для питона 3.4, а вы ставите для 2.7
apt-get install libpython3-dev
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:
Пакеты, имеющие неудовлетворённые зависимости:
 libpython3-dev : Зависит: libpython3.4-dev (>= 3.4.2-0) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

Update:
Через aptitude понизил версии libexpat1, libexp1-dev, libpython3-dev, libpython3.4-dev, теперь
dpkg -l "*libpython3-dev*"
Желаемый=неизвестно[u]/установить[i]/удалить[r]/вычистить[p]/зафиксировать[h]
| Состояние=не[n]/установлен[i]/настроен[c]/распакован[U]/частично настроен[F]/
            частично установлен[H]/trig-aWait/Trig-pend
|/ Ошибка?=(нет)/требуется переустановка[R] (верхний регистр
в полях состояния и ошибки указывает на ненормальную ситуацию)
||/ Имя                           Версия              Архитектура         Описание
+++-=============================-===================-===================-================================================================
ii  libpython3-dev:i386           3.4.2-2             i386                header files and a static library for Python (default)

Т.е. установился libpython3-dev
J.R.
.
mdlv
J.R.
apt-get install python3-dev
mdlv
Через aptitude понизил версии libexpat1, libexp1-dev, libpython3-dev, libpython3.4-dev, теперь
После понижения python3-dev успешно установился.
mdlv
python manage.py syncdb
Traceback (most recent call last):
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 20, in <module>
    import psycopg2 as Database
ImportError: No module named 'psycopg2'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/core/management/__init__.py", line 312, in execute
    django.setup()
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/var/www/myproject/env/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/contrib/auth/models.py", line 41, in <module>
    class Permission(models.Model):
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/db/models/base.py", line 139, in __new__
    new_class.add_to_class('_meta', Options(meta, **kwargs))
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/db/models/base.py", line 324, in add_to_class
    value.contribute_to_class(cls, name)
  File "/var/www/myproject/env/lib/python3.4/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 "/var/www/myproject/env/lib/python3.4/site-packages/django/db/__init__.py", line 36, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/db/utils.py", line 240, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/var/www/myproject/env/lib/python3.4/site-packages/django/db/utils.py", line 111, in load_backend
    return import_module('%s.base' % backend_name)
  File "/var/www/myproject/env/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "/var/www/myproject/env/lib/python3.4/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: No module named 'psycopg2'

В виртуальном окружении все равно выдает вот это. Python.h уже не требует.
mdlv
Не знаю, насколько это правильно, установил psycopg2 через pip внутри виртуального окружения.
Теперь все, на первый взгляд, работает, syncdb ок.
Огромнейшее спасибо за помощь, особенно за оперативность!
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