On a (sun) webserver that I use, there is python 2.5.1 installed. I'd
like to use sqlite3 with this, however sqlite3 is not installed on the
webserver. If I were able to compile sqlite using a sun machine (I
normally use linux machines) and place this in my lunix home account
would I be able to use python and sqlite?
Any thoughts? I know its a bit of a stretch ...
Can you ask them if sqlite3 is installed? and if not... to install it?
You could include in your discussions "well sqlite3 is part of python"
"if it isn't, you haven't installed python properly"
Worth a try...
Python comes with SQLite support. It's not necessary to have SQLite
installed for that.
> If I were able to compile sqlite using a sun machine (I normally use
> linux machines) and place this in my lunix home account would I be
> able to use python and sqlite?
Just go ahead and import sqlite3
Thorsten
Why would he have to install SQLite?!
> You could include in your discussions "well sqlite3 is part of python"
> "if it isn't, you haven't installed python properly"
Sqlite3 is an optional part of Python. It has no dependencies on SQLite.
Thorsten
It seems it's not that simple. On a Gentoo host the SQLite package
provided the necessary library. On a openSUSE host it was libsqlite.
From my understanding SQLite (the headers) is only needed for building
python with SQLite support (or pysqlite) from scratch.
Thorsten
That's not true. To build the _sqlite3 module, you need the SQLite3
sources or binaries, in addition to the Python sources.
Regards,
Martin
That's not what I meant: the question is, do you need SQLite /after/
you've built from source or if you install the Python binary.
Thorsten
Is that some form of tricky question ? The binary package either comes
with the sqlite lib, or in the case of linux distributions, the
package requires the installation of sqlite lib. If you try removing
the sqlite lib package (in Linux), the package manager will tell you
that python depends on it.
> Thorsten
> --
> http://mail.python.org/mailman/listinfo/python-list
>
--
-- Guilherme H. Polo Goncalves
Depends on how you built SQLite on your system. If it was a static
library, you won't need it - if it is a shared library, you certainly
need the shared library at run-time.
Regards,
Martin
Aah, thanks. Makes sense a lot. There were quite a few people here in
the last few days who asked how to build or use Python (or pysqlite)
when SQLite is not installed (and they can't because it's not their
system). I always said that it's not necessary to have SQLite installed
for /running/ Python. Seems that I was "65%" right.
Thorsten
Seems a stupid question. If he wants to use SQLite... it needs to be
on the system....
ould include in your discussions "well sqlite3 is part of python"
>> > "if it isn't, you haven't installed python properly"
>>
>> Sqlite3 is an optional part of Python.
But Python itself is dependent upon SQlite3 being installed first...
try it yourself...
first compile python 2.5 from source without SQLite.. see if it
works... it won't.
Install Sqlite first... then compile python 2.5 from source.. python
sqlite support will work...
The dependency is within the make files of python 2.5. It checks
whether sqlite is installed on the machine and includes support if it
is there.. if not.. doesn't support it...
It is very logical....
No.
> ould include in your discussions "well sqlite3 is part of python"
> >> > "if it isn't, you haven't installed python properly"
> >>
> >> Sqlite3 is an optional part of Python.
>
> But Python itself is dependent upon SQlite3 being installed first...
>
> try it yourself...
>
> first compile python 2.5 from source without SQLite.. see if it
> works... it won't.
>
> Install Sqlite first... then compile python 2.5 from source.. python
> sqlite support will work...
>
> The dependency is within the make files of python 2.5. It checks
> whether sqlite is installed on the machine and includes support if it
> is there.. if not.. doesn't support it...
>
> It is very logical....
Not at all. If you would distribute a script that uses SQLite and it
would depend on whether SQLite is installed or not that would be a
huuuuuge disadvantage.
Python cannot check whether SQLite is installed or not. It checks
whether it can find the SQLite header files. So the SQLite source (or
the binary) is only needed for compiling Python. If you build SQLite
support as a shared library, you need the libsqlite package (not the
SQLite binary itself) at runtime. If you build it static, you don't need
SQLite at all at runtime. See Martin's answer in the same thread.
Thorsten
Now with that out of the way, I'm still not clear if I can install a
copy of sqlite on my local machine and get that to work with python on
the webserver? Possibly via pysqlite?
No, if Python was compiled without SQLite support or pysqlite is not
installed on that machine it will not run anything SQLite related.
Thorsten
ok, thanks for the clarification Thorsten. would it be the same
situation trying to get another db such as MySQL or PostgreSQL working?
No, as those database are supported by modules you have to load separately.
Seems like the easiest answer to your problem would be to install SQLite
and then rebuild the Python interpreter.
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/
Quoting Thorsten Kampe <thor...@thorstenkampe.de>:
> * (Tue, 11 Nov 2008 17:58:15 -0500)
>> > > Can you ask them if sqlite3 is installed? and if not... to install
>> > > it?
>> >
>> > Why would he have to install SQLite?!
>>
>> Seems a stupid question. If he wants to use SQLite... it needs to be
>> on the system....
>
> No.
really...?
> Python cannot check whether SQLite is installed or not.
Of course it can....
> It checks
> whether it can find the SQLite header files. So the SQLite source (or
> the binary) is only needed for compiling Python. If you build SQLite
> support as a shared library, you need the libsqlite package (not the
> SQLite binary itself) at runtime. If you build it static, you don't need
> SQLite at all at runtime. See Martin's answer in the same thread.
Anyway.. I think you just want to argue endlessly with silly
statements.. you're being too pedantic..
Fact is different *nux distributions come with different parts
(static/dynamic-libraries, header files etc). There is no blanket
solution that will work on every platform every time.
I know many *nix distro's work with python out of the box.. but we are
not talking about that..
Anyway.. I have work to do
Take care
David
If you think making a distinction between the SQLite package and the
libsqlite package is pedantic - I don't have a problem with that. Fact
is that none of the packages are required for using sqlite3 with Python
- they are only required when you want to compile Python yourself or
when Python uses the shared library.
And even if you want to compile Python yourself, SQLite doesn't have to
be _installed_. You simply can dump the files wherever you like and
point Python to it. This is often necessary on a machine where you
cannot install anything to the default locations because you don't have
admin rights.
Thorsten
> And even if you want to compile Python yourself, SQLite doesn't have to
> be _installed_. You simply can dump the files wherever you like and
> point Python to it. This is often necessary on a machine where you
> cannot install anything to the default locations because you don't have
> admin rights.
Oh.. ok now I understand what you were trying to say.
That is fair enough.
Take care
David
I think that is not only pedantic - it is also inaccurate. There is
no SQLite package, nor is there a libsqlite package, in the bigger+
world. From
http://www.sqlite.org/download.html
I can download the following pieces:
sqlite3-x.y.z.bin.gz (for Linux, likewise for OSX and Windows)
tclsqlite3* (Tcl bindings - clearly irrelevant here)
sqlite-x.y.z.so.gz (for Linux, likewise for Windows)
sqlite3_analyzer-x.y.z (also clearly irrelevant here)
sqlite-amalgation-x.y.z (amalgated sources)
sqlite-x.y.z (complete sources, in tar.gz and .zip)
So there is no SQLite download, nor is there a libsqlite download.
I don't know what specific packages you are talking about - probably
about the way your Linux distribution choses to package things.
> Fact
> is that none of the packages are required for using sqlite3 with Python
> - they are only required when you want to compile Python yourself or
> when Python uses the shared library.
So the shared library *is* required (as that is the typical way in which
SQLite is built)
> And even if you want to compile Python yourself, SQLite doesn't have to
> be _installed_. You simply can dump the files wherever you like and
> point Python to it. This is often necessary on a machine where you
> cannot install anything to the default locations because you don't have
> admin rights.
And that is nit-picking. You don't have to do the "make install" step,
but I would suggest to do that, anyway, even on a machine where
you don't have admin rights. You just pass --prefix to the configure
of the amalgamated sources. This puts sqlite nicely into bin, include,
and lib directories, so that Python's setup.py can find it easier.
Regards,
Martin
Some Distributions (for example SUSE) have a package called libsqlite
[1].
> > Fact is that none of the packages are required for using sqlite3
> > with Python - they are only required when you want to compile Python
> > yourself or when Python uses the shared library.
>
> So the shared library *is* required (as that is the typical way in
> which SQLite is built)
,--- * [2]
| > That's not what I meant: the question is, do you need SQLite /after/
| > you've built from source or if you install the Python binary.
|
| Depends on how you built SQLite on your system. If it was a static
| library, you won't need it - if it is a shared library, you certainly
| need the shared library at run-time.
`---
> > And even if you want to compile Python yourself, SQLite doesn't have
> > to be _installed_. You simply can dump the files wherever you like
> > and point Python to it. This is often necessary on a machine where
> > you cannot install anything to the default locations because you
> > don't have admin rights.
>
> And that is nit-picking.
No, it's not. That was my advice for people here who wanted to build
Python with SQLite support but claimed not having rights to install it.
Obviously...
> You don't have to do the "make install" step, but I would suggest to
> do that, anyway, even on a machine where you don't have admin rights.
> You just pass --prefix to the configure of the amalgamated sources.
> This puts sqlite nicely into bin, include, and lib directories, so
> that Python's setup.py can find it easier.
...this advice is even much better (but I didn't think of it).
Thorsten
[1] http://software.opensuse.org/search?q=libsqlite
[2] http://groups.google.com/group/comp.lang.python/msg/0d7ec003e4d3ea42