Atualizando a versão do SQLite usada pelo Python 3 no CentOS 7

0

Instalei o Python 3.6 em uma caixa do Centos 7.4 e preciso de uma versão atualizada do SQLite (estou usando alguns recursos novos). A versão do SQLite que vem com ele é muito antiga: 3.7.17.

Como isso é feito? No Windows, é uma simples questão de substituir o arquivo sqlite.dll no diretório Python \ DLLs pelo seu desejado, mas não encontrei nada para como fazê-lo no Linux.

Eu posso ver que a pergunta foi feita antes do SO, mas não respondida - link - essa é a única página do meu googling; a maioria dos outros resultados são Python 2 / pysqlite que não me ajudam.

Então, como você atualiza a versão do SQLite usada pelo Python em uma caixa do CentOS?

    
por linux_confusion 28.03.2018 / 16:03

1 resposta

0

Você precisará encontrar um RPM com a versão mais recente ou precisará baixar os binários pré-compilados para o seu sistema operacional ( link ) ou baixar fonte / compilar / instalar o software.

Normalmente é recomendável ficar com RPMs para melhor gerenciamento de software (para instalação, atualização, etc.), mas se você não conseguir encontrar o RPM que funcionará, sinta-se à vontade para instalar a versão pré-compilada ou compilar o software e instalá-lo . Isso geralmente é feito em sistemas Linux para obter as versões mais recentes ou específicas do software necessário para executar determinados softwares.

Depois de compilar o SQLite, você deve ser capaz de apontar para as bibliotecas do python, uma maneira rápida é configurar o LD_LIBRARY_PATH para a saída do diretório lib que você teria obtido da compilação do SQLite:

Libraries have been installed in: /usr/local/sqlite-3.22.0/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf'

Se você executar seu python antes de configurar suas bibliotecas, verá a versão antiga:

python3.6 -c "import sqlite3; print(sqlite3.sqlite_version)"
3.7.17

Com a nova versão:

export LD_LIBRARY_PATH=/usr/local/sqlite-3.22.0/lib
python3.6 -c "import sqlite3; print(sqlite3.sqlite_version)"
3.22.0

Dependendo do seu ambiente, você pode precisar configurar isso em seu código ou antes de seu código ser executado, dependendo de como você gerencia diferentes versões de bibliotecas. Embora a saída da compilação possa lhe dar algumas idéias sobre isso.

    
por 28.03.2018 / 16:49