SQLite для Python 2.5

MySQL, PostgreSQL, InterBaseSQL etc

Модераторы: Art.i, vasya

SQLite для Python 2.5

Сообщение Kostik » Пн янв 26, 2009 8:24 am

При попытке импортировать модуль sqlite3 из питоновского скрипта получаю вот такую ошибку:

Traceback (most recent call last):

File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)

File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target
result = _execute_target(config, req, object, arg)

File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target
result = object(arg)

File "/usr/local/lib/python2.5/site-packages/mod_python/publisher.py", line 204, in handler
module = page_cache[req]

File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 1059, in __getitem__
return import_module(req.filename)

File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 296, in import_module
log, import_path)

File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 680, in import_module
execfile(file, module.__dict__)

File "/home/kostik/data/www/trovu.info/eo.py", line 29, in <module>
import sqlite3

File "/usr/local/lib/python2.5/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *

File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *

ImportError: No module named _sqlite3


Во всякого рода документации написано, что sqlite3 включен в состав Python 2.5 по умолчанию. Собственно, у меня на локальной машине оно и работает, а вот у вас на ВДСе — нет (притом, что и у меня, и на хостинге стоит практически одна и та же версия):

Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32
— дома
Python 2.5.2 (r252:60911, Sep 17 2008, 02:33:52) [GCC 3.4.6 [FreeBSD] 20060305] on freebsd6
— на ВДСе

Судя по всему, нужный модуль (_sqlite3.so) должен находиться в папке /usr/local/lib/python2.5/lib-dynload/, в которой находятся другие подобные модули. Но его там нет. Скачанный с сайта sqlite.org последний релиз (sqlite-3.6.10.so, переименованный в _sqlite3.so) не подходит:

ImportError: /usr/local/lib/python2.5/lib-dynload/_sqlite3.so: Undefined symbol "__ctype_b_loc"


Я не знаю, что с этим делать.

У вас заявлено, что установленное ПО полностью работоспособно. А что мне делать с этой проблемой?
Kostik
 
Сообщений: 14
Зарегистрирован: Пт янв 18, 2008 8:26 am
Откуда: Иркутск

Сообщение vadim s. sabinich » Пн янв 26, 2009 1:01 pm

вам следовало не вручную копировать модуль, а установить из портов.
vadim s. sabinich
Support team
 
Сообщений: 1167
Зарегистрирован: Ср фев 06, 2008 3:42 pm
Откуда: FirstVDS

Сообщение Kostik » Пн янв 26, 2009 2:39 pm

vadim s. sabinich писал(а):вам следовало не вручную копировать модуль, а установить из портов.

Изначально мне бы интересно было понять, почему его вообще нужно как-то дополнительно устанавливать, раз он должен по умолчанию быть в Питоне 2.5?

Кстати, про порты я как-то забыл, да. Спасибо, что напомнили.
Kostik
 
Сообщений: 14
Зарегистрирован: Пт янв 18, 2008 8:26 am
Откуда: Иркутск

Сообщение Kostik » Сб июн 27, 2009 8:41 am

Установка из портов, кстати, проблемы не решает. По-прежнему ImportError: No module named _sqlite3.

Ау, товарищи хостеры! Почему у вас нет sqlite3 в Python 2.5? Поставьте нормально.
Kostik
 
Сообщений: 14
Зарегистрирован: Пт янв 18, 2008 8:26 am
Откуда: Иркутск

Сообщение Лена » Сб июн 27, 2009 11:48 am

Kostik писал(а):Установка из портов, кстати, проблемы не решает.
Вы установили порт /usr/ports/databases/py-sqlite3 или что?
Лена
Cool UNIX administrator
 
Сообщений: 810
Зарегистрирован: Вс дек 09, 2007 1:36 pm
Откуда: Киев

Сообщение Kostik » Сб июн 27, 2009 5:33 pm

Лена писал(а):
Kostik писал(а):Установка из портов, кстати, проблемы не решает.
Вы установили порт /usr/ports/databases/py-sqlite3 или что?

Я сначала установил /usr/ports/databases/sqlite3.

PS. Установка /usr/ports/databases/py-sqlite3 решила проблему, спасибо.
PPS. Только неясно, почему это нужно было делать отдельно и самостоятельно..
Kostik
 
Сообщений: 14
Зарегистрирован: Пт янв 18, 2008 8:26 am
Откуда: Иркутск

Сообщение Лена » Сб июн 27, 2009 5:55 pm

Kostik писал(а):неясно, почему это нужно было делать отдельно
Потому что в FreeBSD этот нужный немногим модуль выделили в отдельный порт.
Kostik писал(а):и самостоятельно..
Потому что этот опять же нужный немногим порт не включили в список предустановленных портов.
Kostik писал(а):Во всякого рода документации написано, что sqlite3 включен в состав Python 2.5 по умолчанию.
Например?
На http://www.pysqlite.org есть раздел "downloads" (но это не для пользователей FreeBSD - для них есть система портов).
Лена
Cool UNIX administrator
 
Сообщений: 810
Зарегистрирован: Вс дек 09, 2007 1:36 pm
Откуда: Киев

Сообщение perk11 » Пн авг 03, 2009 11:57 pm

А не подскажете, как установить py-sqlite3 именно для python2.5? он по умолчанию ставиться для 2.6, и если нагло заставить его устанавливать для 2.5, поменяв Makefile, то получаем ту же ошибку, что и раньше (что-то про DecodeUtf8, могу точно написать)
perk11
 
Сообщений: 21
Зарегистрирован: Сб авг 04, 2007 8:46 pm
Откуда: Новороссийск

Сообщение vadim s. sabinich » Вт авг 04, 2009 1:50 am

судя по http://freebsd.org/ports искомое приложение просто отсутствует в портах. Вам нужно именно его? Может, можно просто сделать симлинк?
vadim s. sabinich
Support team
 
Сообщений: 1167
Зарегистрирован: Ср фев 06, 2008 3:42 pm
Откуда: FirstVDS

Сообщение perk11 » Вт авг 04, 2009 2:50 am

а на VDS оно есть в портах
Код: выделить все
%ls /usr/ports/databases/ | grep sqlite3
gambas2-gb-db-sqlite3
linux-f10-sqlite3
linux-f8-sqlite3
luasql-sqlite3
ocaml-sqlite3
php-sqlite3
py-sqlite3
qt4-sqlite3-plugin
rubygem-do_sqlite3
rubygem-sqlite3
sqlite3
sqlite34

а симлинк пробовал делать, вылазит та же ошибка, похоже она связана как раз с тем, что библиотека не для той версии
Код: выделить все
Python 2.5.1 (r251:54863, Jul 30 2007, 20:56:08)
[GCC 3.4.6 [FreeBSD] 20060305] on freebsd6
Type "help", "copyright", "credits" or "license" for more information.
im>>> import sqlite3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.5/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: /usr/local/lib/python2.5/lib-dynload/_sqlite3.so: Undefined symbol "PyUnicodeUCS2_AsUTF8String"
>>>

а подойдёт мне что угодно, лишь бы работало sqlite3 в python2.5
perk11
 
Сообщений: 21
Зарегистрирован: Сб авг 04, 2007 8:46 pm
Откуда: Новороссийск

Сообщение vadim s. sabinich » Вт авг 04, 2009 3:57 am

Я имел ввиду, что sqlite для python25 отсутствует.
Хотя сам python25 есть.
vadim s. sabinich
Support team
 
Сообщений: 1167
Зарегистрирован: Ср фев 06, 2008 3:42 pm
Откуда: FirstVDS


Вернуться в Базы данных

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron