Форум сайта python.su
На чистом 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$
Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Некоторые пакеты невозможно установить. Возможно, вы просите невозможного, или же используете нестабильную версию дистрибутива, где запрошенные вами пакеты ещё не созданы или были удалены из Incoming. Следующая информация, возможно, поможет вам: Пакеты, имеющие неудовлетворённые зависимости: python-dev : Зависит: libpython-dev (= 2.7.9-1) но он не будет установлен Зависит: python2.7-dev (>= 2.7.9-1~) но он не будет установлен E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.
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 <нет> <нет> (описание недоступно)
Отредактировано mdlv (Авг. 6, 2015 18:27:00)
Офлайн
python 3.4.2.
python-dev : Зависит: libpython-dev (= 2.7.9-1) но он не будет установленВам нужны заголовочные файлы для питона 3.4, а вы ставите для 2.7
Офлайн
.
Отредактировано J.R. (Фев. 27, 2016 16:05:19)
Офлайн
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) битые пакеты.
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)
Отредактировано mdlv (Авг. 6, 2015 18:40:03)
Офлайн
.
Отредактировано J.R. (Фев. 27, 2016 16:05:56)
Офлайн
J.R.
apt-get install python3-dev
mdlvПосле понижения python3-dev успешно установился.
Через aptitude понизил версии libexpat1, libexp1-dev, libpython3-dev, libpython3.4-dev, теперь
Офлайн
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'
Офлайн
Не знаю, насколько это правильно, установил psycopg2 через pip внутри виртуального окружения.
Теперь все, на первый взгляд, работает, syncdb ок.
Огромнейшее спасибо за помощь, особенно за оперативность!
Офлайн