installing "pysqlite"

N

Nader Emami

I have installed "TurboGears" and I would install 'pysqlite' also. I am
a user on a Linux machine. If I try to install the 'pysqlite' with
'easy_install' tool I get the next error message. The error message is
longer than what I send here.


% easy_install pysqlite
Searching for pysqlite
Reading http://cheeseshop.python.org/pypi/pysqlite/
Reading http://pysqlite.org/
Reading http://cheeseshop.python.org/pypi/pysqlite/2.3.3
Best match: pysqlite 2.3.3
Downloading
http://initd.org/pub/software/pysqlite/releases/2.3/2.3.3/pysqlite-2
..3.3.tar.gz
Processing pysqlite-2.3.3.tar.gz
Running pysqlite-2.3.3/setup.py -q bdist_egg --dist-dir
/tmp/easy_install-71B-Y0
/pysqlite-2.3.3/egg-dist-tmp-Wj2VRc
warning: no files found matching 'doc/*.html'
In file included from src/module.c:24:
src/connection.h:33:21: sqlite3.h: No such file or directory
In file included from src/module.c:24:
src/connection.h:38: error: parse error before "sqlite3"


Could somebody tell me what I have to do to install 'pysqlite'?


With regards,
Nader
 
P

Paul Boddie

I have installed "TurboGears" and I would install 'pysqlite' also. I am
a user on a Linux machine. If I try to install the 'pysqlite' with
'easy_install' tool I get the next error message. The error message is
longer than what I send here.
[...]

src/connection.h:33:21: sqlite3.h: No such file or directory
[...]

Could somebody tell me what I have to do to install 'pysqlite'?

Install SQLite, perhaps? If the pysqlite build process can't find
sqlite3.h then you either don't have SQLite installed, or you don't
have the headers for SQLite installed. I'd recommend that you check
your installed packages for the SQLite libraries (eg. libsqlite3-0 on
Ubuntu) and/or the user interface (eg. sqlite3) and for the
development package (eg. libsqlite3-dev).

If you can't install the packages, install SQLite from source (see
http://www.sqlite.org/) and try and persuade pysqlite to use your own
SQLite installation - there's a setup.cfg file in the pysqlite
distribution which may need to be changed to achieve this, but I don't
know how that interacts with setuptools.

Paul
 
N

Nader

I have installed "TurboGears" and I would install 'pysqlite' also. I am
a user on a Linux machine. If I try to install the 'pysqlite' with
'easy_install' tool I get the next error message. The error message is
longer than what I send here.
[...]

src/connection.h:33:21: sqlite3.h: No such file or directory
[...]

Could somebody tell me what I have to do to install 'pysqlite'?

Install SQLite, perhaps? If the pysqlite build process can't find
sqlite3.h then you either don't have SQLite installed, or you don't
have the headers for SQLite installed. I'd recommend that you check
your installed packages for the SQLite libraries (eg. libsqlite3-0 on
Ubuntu) and/or the user interface (eg. sqlite3) and for the
development package (eg. libsqlite3-dev).

If you can't install the packages, install SQLite from source (seehttp://www.sqlite.org/) and try and persuade pysqlite to use your own
SQLite installation - there's a setup.cfg file in the pysqlite
distribution which may need to be changed to achieve this, but I don't
know how that interacts with setuptools.

Paul

Thank for your reaction. I don't know also how the interaction sith
'easy_install' is. I think that I have to install 'pysqlite' from
source code also, because i can change ther the 'setup.cfg' file and I
can give there where the 'libsqlie3' is.

Nader
 
D

Diez B. Roggisch

Nader said:
I have installed "TurboGears" and I would install 'pysqlite' also. I am
a user on a Linux machine. If I try to install the 'pysqlite' with
'easy_install' tool I get the next error message. The error message is
longer than what I send here.
[...]

src/connection.h:33:21: sqlite3.h: No such file or directory
[...]

Could somebody tell me what I have to do to install 'pysqlite'?

Install SQLite, perhaps? If the pysqlite build process can't find
sqlite3.h then you either don't have SQLite installed, or you don't
have the headers for SQLite installed. I'd recommend that you check
your installed packages for the SQLite libraries (eg. libsqlite3-0 on
Ubuntu) and/or the user interface (eg. sqlite3) and for the
development package (eg. libsqlite3-dev).

If you can't install the packages, install SQLite from source
(seehttp://www.sqlite.org/) and try and persuade pysqlite to use your own
SQLite installation - there's a setup.cfg file in the pysqlite
distribution which may need to be changed to achieve this, but I don't
know how that interacts with setuptools.

Paul

Thank for your reaction. I don't know also how the interaction sith
'easy_install' is. I think that I have to install 'pysqlite' from
source code also, because i can change ther the 'setup.cfg' file and I
can give there where the 'libsqlie3' is.

I think you are ok with easyinstall here. But as Paul said - you need the
sqlite3-headers. Usually, these are in a package called sqlite3-dev or
something.

However, if you happen to have a decent distribution (read: debian-based),
you should be able to install pysqlite2 as a package itself - no need to
easy_install it.


Diez
 
P

Paul Boddie

Thank for your reaction. I don't know also how the interaction sith
'easy_install' is. I think that I have to install 'pysqlite' from
source code also, because i can change ther the 'setup.cfg' file and I
can give there where the 'libsqlie3' is.

What I did was to go to the pysqlite site (http://www.initd.org/
tracker/pysqlite/wiki/pysqlite), download the sources for the latest
version, then change the setup.cfg file so that include_dirs refers to
the place where the SQLite headers (eg. sqlite.h) were installed, and
that library_dirs refers to the place where the SQLite libraries were
installed. For example:

include_dirs=/opt/sqlite/usr/include
library_dirs=/opt/sqlite/usr/lib

(You'd get the above if you configured SQLite to install into /opt/
sqlite/usr.)

Then, just do the usual build:

python setup.py build

And install with a prefix:

python setup.py install --prefix=/opt/pysqlite/usr

Since you seem to be installing things in non-root-controlled places,
I imagine you're familiar with specifying things like the --prefix
above, as well as setting up your PYTHONPATH afterwards.

Paul
 
N

Nader Emami

Paul said:
What I did was to go to the pysqlite site (http://www.initd.org/
tracker/pysqlite/wiki/pysqlite), download the sources for the latest
version, then change the setup.cfg file so that include_dirs refers to
the place where the SQLite headers (eg. sqlite.h) were installed, and
that library_dirs refers to the place where the SQLite libraries were
installed. For example:

include_dirs=/opt/sqlite/usr/include
library_dirs=/opt/sqlite/usr/lib

(You'd get the above if you configured SQLite to install into /opt/
sqlite/usr.)

Then, just do the usual build:

python setup.py build

And install with a prefix:

python setup.py install --prefix=/opt/pysqlite/usr

Since you seem to be installing things in non-root-controlled places,
I imagine you're familiar with specifying things like the --prefix
above, as well as setting up your PYTHONPATH afterwards.

Paul
I have first installed "sqlite" and then I have configure the
"setup.cfg" file of "pysqlite" package. I had to do two things in
'pysqlite' directory:
1- python setup.py build
2- python setup.py install

It has done without any error. I suppose that the installation is well
done, but I haven't yet test whether I can import the 'pysqlite' module
in python. But how you mean about "PYTHONPATH"? If I do "echo
$PYTHONPAT" i get an empty string. That meant that I don't have any
"PYTHONPATH". How can I assign a correct "path" to this variable?

Nader
 
P

Paul Boddie

I have first installed "sqlite" and then I have configure the
"setup.cfg" file of "pysqlite" package. I had to do two things in
'pysqlite' directory:
1- python setup.py build
2- python setup.py install

It has done without any error. I suppose that the installation is well
done, but I haven't yet test whether I can import the 'pysqlite' module
in python. But how you mean about "PYTHONPATH"? If I do "echo
$PYTHONPAT" i get an empty string. That meant that I don't have any
"PYTHONPATH". How can I assign a correct "path" to this variable?

I was getting ahead of myself and forgot that you may have a version
of Python that you installed yourself from source. If so, "python
setup.py install" (without specifying --prefix) should put the package
in the right place so that you don't have to worry about PYTHONPATH.

Just try and "import pysqlite2", then see if it worked or not.

Paul
 
N

Nader Emami

Paul said:
I have installed "TurboGears" and I would install 'pysqlite' also. I am
a user on a Linux machine. If I try to install the 'pysqlite' with
'easy_install' tool I get the next error message. The error message is
longer than what I send here.
[...]

src/connection.h:33:21: sqlite3.h: No such file or directory
[...]

Could somebody tell me what I have to do to install 'pysqlite'?

Install SQLite, perhaps? If the pysqlite build process can't find
sqlite3.h then you either don't have SQLite installed, or you don't
have the headers for SQLite installed. I'd recommend that you check
your installed packages for the SQLite libraries (eg. libsqlite3-0 on
Ubuntu) and/or the user interface (eg. sqlite3) and for the
development package (eg. libsqlite3-dev).

If you can't install the packages, install SQLite from source (see
http://www.sqlite.org/) and try and persuade pysqlite to use your own
SQLite installation - there's a setup.cfg file in the pysqlite
distribution which may need to be changed to achieve this, but I don't
know how that interacts with setuptools.

Paul
Hello,

I am back with another problem. I suppose that I can tell it!
I have installed both, 'sqlite' and 'pysqlite' without any problem. But
If I try to test whether the 'pysqlite' interface works, I get the next
error message:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File
"/usr/people/emami/lib/python2.4/site-packages/pysqlite2/dbapi2.py",
line 27, in ?
from pysqlite2._sqlite import *
ImportError:
/usr/people/emami/lib/python2.4/site-packages/pysqlite2/_sqlite.so:
undefined symbol: sqlite3_set_authorizer

I don't understand it. Could you tell me how I can solve this last
point? I hope so!

With regards,

Nader
 
P

Paul Boddie

I am back with another problem. I suppose that I can tell it!
I have installed both, 'sqlite' and 'pysqlite' without any problem. But
If I try to test whether the 'pysqlite' interface works, I get the next
error message:
[...]

/usr/people/emami/lib/python2.4/site-packages/pysqlite2/_sqlite.so:
undefined symbol: sqlite3_set_authorizer

I don't understand it. Could you tell me how I can solve this last
point? I hope so!

It looks like Python (although it's really the dynamic linker) can't
locate the SQLite libraries. If you have installed SQLite into a non-
standard place, which I'm guessing is the case, then you will need to
set your LD_LIBRARY_PATH environment variable to refer to the
directory where the libraries were installed.

So, if you installed SQLite into /usr/people/emami and you see files
like libsqlite3.so in /usr/people/emami/lib, then you need to change
your LD_LIBRARY_PATH as follows:

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/people/emami/lib

(The actual directory should be the same as the one you specified for
library_dirs in the setup.cfg file for pysqlite.)

If you're not using bash as your shell, the syntax for the command may
be different. Don't forget to add this command to your shell
configuration file (eg. .bashrc) so that your system remembers this
information.

Paul
 
N

Nader

I am back with another problem. I suppose that I can tell it!
I have installed both, 'sqlite' and 'pysqlite' without any problem. But
If I try to test whether the 'pysqlite' interface works, I get the next
error message:
[...]

/usr/people/emami/lib/python2.4/site-packages/pysqlite2/_sqlite.so:
undefined symbol: sqlite3_set_authorizer
I don't understand it. Could you tell me how I can solve this last
point? I hope so!

It looks like Python (although it's really the dynamic linker) can't
locate the SQLite libraries. If you have installed SQLite into a non-
standard place, which I'm guessing is the case, then you will need to
set your LD_LIBRARY_PATH environment variable to refer to the
directory where the libraries were installed.

So, if you installed SQLite into /usr/people/emami and you see files
like libsqlite3.so in /usr/people/emami/lib, then you need to change
your LD_LIBRARY_PATH as follows:

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/people/emami/lib

(The actual directory should be the same as the one you specified for
library_dirs in the setup.cfg file for pysqlite.)

If you're not using bash as your shell, the syntax for the command may
be different. Don't forget to add this command to your shell
configuration file (eg. .bashrc) so that your system remembers this
information.

Paul

I see now your respond to my problem, but i can check it tomorrow
because I don't have at this moment on this machine. However thank for
the reaction and I will tell about it after assiging the new lib to
its PATH.

Nader
 
N

Nader

I am back with another problem. I suppose that I can tell it!
I have installed both, 'sqlite' and 'pysqlite' without any problem. But
If I try to test whether the 'pysqlite' interface works, I get the next
error message:
[...]

/usr/people/emami/lib/python2.4/site-packages/pysqlite2/_sqlite.so:
undefined symbol: sqlite3_set_authorizer
I don't understand it. Could you tell me how I can solve this last
point? I hope so!

It looks like Python (although it's really the dynamic linker) can't
locate the SQLite libraries. If you have installed SQLite into a non-
standard place, which I'm guessing is the case, then you will need to
set your LD_LIBRARY_PATH environment variable to refer to the
directory where the libraries were installed.

So, if you installed SQLite into /usr/people/emami and you see files
like libsqlite3.so in /usr/people/emami/lib, then you need to change
your LD_LIBRARY_PATH as follows:

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/people/emami/lib

(The actual directory should be the same as the one you specified for
library_dirs in the setup.cfg file for pysqlite.)

If you're not using bash as your shell, the syntax for the command may
be different. Don't forget to add this command to your shell
configuration file (eg. .bashrc) so that your system remembers this
information.

Paul

Hello

I have expanded the LD_LIBRARY_PATH to my home lib (export
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/people/emami/lib).
I have built and installed the 'pysqlite-2.3.3' with the next
'setup.cfg' :

[build_ext]
define=
include_dirs=/usr/people/emami/include
library_dirs=/usr/people/emami/lib
#libraries=/usr/people/emami/lib/libsqlite3.so (this line as a
comment)

The resutl of this process was:

running install_lib
copying build/lib.linux-i686-2.4/pysqlite2/_sqlite.so -> /usr/people/
emami/lib/python2.4/site-packages/pysqlite2
running install_data

This message had given after installing. I have controll the '/usr/
people/emami/lib/python2.4/site-packages/pysqlite2' whether the
'_sqlite.so' has copied there. Yes it has. Okay!
I go to python and I give the next command:
and Unfortunately I get the next error message:

Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/people/emami/lib/python2.4/site-packages/pysqlite2/test/
__init__.py", line 25, in ?
from pysqlite2.test import dbapi, types, userfunctions, factory,
transactions,\
File "/usr/people/emami/lib/python2.4/site-packages/pysqlite2/test/
dbapi.py", line 26, in ?
import pysqlite2.dbapi2 as sqlite
File "/usr/people/emami/lib/python2.4/site-packages/pysqlite2/
dbapi2.py", line 27, in ?
from pysqlite2._sqlite import *
ImportError: /usr/people/emami/lib/python2.4/site-packages/pysqlite2/
_sqlite.so: undefined symbol: sqlite3_set_authorizer

Do you know what option I have to give to if I want to use the
'easy_install" tool?
%easy_install pysqlite (with some optione with which it cab find the
installed 'libsqlite.so')

Nader
 
P

Paul Boddie

I have expanded the LD_LIBRARY_PATH to my home lib (export
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/people/emami/lib).
I have built and installed the 'pysqlite-2.3.3' with the next
'setup.cfg' :

[build_ext]
define=
include_dirs=/usr/people/emami/include
library_dirs=/usr/people/emami/lib
#libraries=/usr/people/emami/lib/libsqlite3.so (this line as a
comment)

This looks alright. Be sure to verify that libsqlite3.so is in /usr/
people/emami/lib, although I suppose you've done this, looking at your
comment.
The resutl of this process was:

running install_lib
copying build/lib.linux-i686-2.4/pysqlite2/_sqlite.so -> /usr/people/
emami/lib/python2.4/site-packages/pysqlite2
running install_data

This message had given after installing. I have controll the '/usr/
people/emami/lib/python2.4/site-packages/pysqlite2' whether the
'_sqlite.so' has copied there. Yes it has. Okay!

So pysqlite2 has installed properly at least.
I go to python and I give the next command:

and Unfortunately I get the next error message:
[...]

ImportError: /usr/people/emami/lib/python2.4/site-packages/pysqlite2/
_sqlite.so: undefined symbol: sqlite3_set_authorizer

I'm running out of ideas here, but you could try doing this:

ldd /usr/people/emami/lib/python2.4/site-packages/pysqlite2/_sqlite.so

This should show a list of references to libraries, but if one of them
is missing in some way then it means that it isn't found by the linker
and it's not on the LD_LIBRARY_PATH. Another thought is that
sqlite3_set_authorizer isn't found in the SQLite library - you can
test this by doing the following:

nm /usr/people/emami/lib/libsqlite3.so

I get something like this in response:

00000000000110b0 T sqlite3_set_authorizer

If you don't get anything in response or if you see "U" instead of
"T", then this might indicate an problem with the way SQLite has been
configured.
Do you know what option I have to give to if I want to use the
'easy_install" tool?
%easy_install pysqlite (with some optione with which it cab find the
installed 'libsqlite.so')

I'm no easy_install expert, I'm afraid. You might want to talk to the
pysqlite people directly if what I've suggested doesn't help you
further:

http://www.initd.org/tracker/pysqlite/wiki/pysqlite

Paul
 
N

Nader

I have expanded the LD_LIBRARY_PATH to my home lib (export
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/people/emami/lib).
I have built and installed the 'pysqlite-2.3.3' with the next
'setup.cfg' :
[build_ext]
define=
include_dirs=/usr/people/emami/include
library_dirs=/usr/people/emami/lib
#libraries=/usr/people/emami/lib/libsqlite3.so (this line as a
comment)

This looks alright. Be sure to verify that libsqlite3.so is in /usr/
people/emami/lib, although I suppose you've done this, looking at your
comment.
The resutl of this process was:
running install_lib
copying build/lib.linux-i686-2.4/pysqlite2/_sqlite.so -> /usr/people/
emami/lib/python2.4/site-packages/pysqlite2
running install_data
This message had given after installing. I have controll the '/usr/
people/emami/lib/python2.4/site-packages/pysqlite2' whether the
'_sqlite.so' has copied there. Yes it has. Okay!

So pysqlite2 has installed properly at least.
I go to python and I give the next command:
and Unfortunately I get the next error message:
[...]

ImportError: /usr/people/emami/lib/python2.4/site-packages/pysqlite2/
_sqlite.so: undefined symbol: sqlite3_set_authorizer

I'm running out of ideas here, but you could try doing this:

ldd /usr/people/emami/lib/python2.4/site-packages/pysqlite2/_sqlite.so

This should show a list of references to libraries, but if one of them
is missing in some way then it means that it isn't found by the linker
and it's not on the LD_LIBRARY_PATH. Another thought is that
sqlite3_set_authorizer isn't found in the SQLite library - you can
test this by doing the following:

nm /usr/people/emami/lib/libsqlite3.so

I get something like this in response:

00000000000110b0 T sqlite3_set_authorizer

If you don't get anything in response or if you see "U" instead of
"T", then this might indicate an problem with the way SQLite has been
configured.
Do you know what option I have to give to if I want to use the
'easy_install" tool?
%easy_install pysqlite (with some optione with which it cab find the
installed 'libsqlite.so')

I'm no easy_install expert, I'm afraid. You might want to talk to the
pysqlite people directly if what I've suggested doesn't help you
further:

http://www.initd.org/tracker/pysqlite/wiki/pysqlite

Paul

Hello

ldd returens the next result:
ldd /usr/people/emami/lib/python2.4/site-packages/pysqlite2/_sqlite.so
linux-gate.so.1 => (0xffffe000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40040000)
libc.so.6 => /lib/tls/libc.so.6 (0x40050000)

and the 'nm' gives this:

nm usr/people/emami/lib/libsqlite3.so | grep sqlite3_set_authorize
0000ce40 T sqlite3_set_authorizer


/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
 
P

Paul Boddie

ldd returens the next result:
ldd /usr/people/emami/lib/python2.4/site-packages/pysqlite2/_sqlite.so
linux-gate.so.1 => (0xffffe000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40040000)
libc.so.6 => /lib/tls/libc.so.6 (0x40050000)

I think you pasted the nm result in here, but you seem to be missing
libsqlite3.so.0 (from what I see myself). From what I've just read
about linux-gate.so, the linker can't seem to find the SQLite
libraries. More on linux-gate.so here:

http://www.trilithium.com/johan/2005/08/linux-gate/
and the 'nm' gives this:

nm usr/people/emami/lib/libsqlite3.so | grep sqlite3_set_authorize
0000ce40 T sqlite3_set_authorizer

That looks alright.
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

I guess this was the end of the ldd result.

I'm out of ideas, unfortunately. I think you should experiment with
LD_LIBRARY_PATH and run ldd again to see if you can get it to show
libsqlite3.so.0. The pysqlite mailing list might be the best place to
ask for help if that doesn't work. Sorry!

Paul
 
N

Nader

I think you pasted the nm result in here, but you seem to be missing
libsqlite3.so.0 (from what I see myself). From what I've just read
about linux-gate.so, the linker can't seem to find the SQLite
libraries. More on linux-gate.so here:

http://www.trilithium.com/johan/2005/08/linux-gate/



That looks alright.


I guess this was the end of the ldd result.

I'm out of ideas, unfortunately. I think you should experiment with
LD_LIBRARY_PATH and run ldd again to see if you can get it to show
libsqlite3.so.0. The pysqlite mailing list might be the best place to
ask for help if that doesn't work. Sorry!

Paul

Hello Paul,

I have returnd to the begining and have installed everthing again.
Fortunately now I have the 'pysqlite2' module, because the test.test()
workd after importing of 'pysqlite2'
..............................................................................................................................................................................[/QUOTE][/QUOTE][/QUOTE]

And the result of running of 'ldd' is :
emami@bcw009:~> ldd lib/python2.4/site-packages/pysqlite2/_sqlite.so
linux-gate.so.1 => (0xffffe000)
libsqlite3.so.0 => /usr/people/emami/lib/libsqlite3.so.0
(0x40010000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40096000)
libc.so.6 => /lib/tls/libc.so.6 (0x400a7000)

Now I can ggo on with TurboGears! I have at home a Laptop and I have
installed the 'gentoo' on it, and have no problem. But I would like to
experiment with TurboGears at my work and It was a problem that I had
no 'root' password.
However I appreciate well your help in this case. I you like Indian or
oriental music I can send you some!

With regards,

Nader
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,583
Members
45,074
Latest member
StanleyFra

Latest Threads

Top