sqlite3 cannot detect the version of compiled sqlite version at some point in runtime.
panfei
cnweike at gmail.com
Wed Jan 20 22:04:33 EST 2021
1033 C_INCLUDE_PATH=/home/felix/.local/sqlite/default/include/ CPLUS_INCLUDE_PATH=/home/felix/.local/sqlite/default/include/ LD_RUN_PATH=/home/felix/.local/sqlite/default/lib ./configure --prefix=/home/felix/.local/python/python-3.9.1 --enable-optimizations
1034 C_INCLUDE_PATH=/home/felix/.local/sqlite/default/include/ CPLUS_INCLUDE_PATH=/home/felix/.local/sqlite/default/include/ LD_RUN_PATH=/home/felix/.local/sqlite/default/lib make
1035 make clean
1036 C_INCLUDE_PATH=/home/felix/.local/sqlite/default/include/ CPLUS_INCLUDE_PATH=/home/felix/.local/sqlite/default/include/ LD_RUN_PATH=/home/felix/.local/sqlite/default/lib ./configure --prefix=/home/felix/.local/python/python-3.9.1 --enable-optimizations
1037 C_INCLUDE_PATH=/home/felix/.local/sqlite/default/include/ CPLUS_INCLUDE_PATH=/home/felix/.local/sqlite/default/include/ LD_RUN_PATH=/home/felix/.local/sqlite/default/lib make
1038 C_INCLUDE_PATH=/home/felix/.local/sqlite/default/include/ CPLUS_INCLUDE_PATH=/home/felix/.local/sqlite/default/include/ LD_RUN_PATH=/home/felix/.local/sqlite/default/lib make install
1039 /home/felix/.local/python/python-3.9.1/bin/python3
1040 history
[felix at localhost Python-3.9.1]$ /home/felix/.local/python/python-3.9.1/bin/python3
Python 3.9.1 (default, Jan 21 2021, 10:58:50)
[GCC 10.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> conn = sqlite3.connect(':memory:')
>>> conn.create_function('f', 2, lambda *args: None, deterministic=True)
>>>
Thanks very ! Every step in compilation should be with the same environment variable. Thanks again!
在 2021年1月21日星期四 UTC+8 上午5:57:43,<Random832> 写道:
> On Wed, Jan 20, 2021, at 16:45, Random832 wrote:
> > On Wed, Jan 20, 2021, at 14:54, panfei wrote:
> > > 3. Compile Python 3.9.1
> > > C_INCLUDE_PATH=/home/felix/.local/sqlite/sqlite-3.34.0/include/
> > > CPLUS_INCLUDE_PATH=/home/felix/.local/sqlite/sqlite-3.34.0/include/
> > > LD_RUN_PATH=/home/felix/.local/sqlite/default/lib ./configure
> > > --prefix=/home/felix/.local/python/python-3.9.1 --enable-optimizations
> > > make && make install
> >
> > How *exactly* did you compile python? i.e. what specific commands, to
> > make it pick up those include paths? Because from the symptoms you are
> > reporting, it sounds like it was not compiled against the correct
> > version of sqlite.
> Oh, sorry, I missed "./configure" on that line.
>
> So, it looks like you had the environment variables set when you ran configure, but not make. I don't think this is a common way to set include paths, by the way. The usual way is with pkg-config, but I'm not sure how to add your .local sqlite directory to it. Does your sqlite installation include a file called "sqlite3.pc"? If so, try adding the directory containing it to PKG_CONFIG_PATH when running configure.
>
> If not... well, export the environment variables or add them when running make and hope for the best
More information about the Python-list
mailing list