web-dev-qa-db-ja.com

CentOS 7でPython 3によって使用されるSQLiteバージョンを更新する

Centos 7.4ボックスにPython 3.6をインストールし、SQLiteのアップデートバージョンが必要です(いくつかの新機能を使用しています)。付属のSQLiteバージョンは非常に古いです:3.7 .17。

これはどのように行われますか? Windowsでは、Python\DLLsディレクトリのsqlite.dllファイルを目的のファイルに置き換えるだけですが、Linuxでそれを行う方法はありません。

私は前にSOで質問されたが、答えられなかったことがわかります https://stackoverflow.com/questions/39064472/how-to-update-sqlite3-in-centos-6-6 -これが私のグーグルで使用する唯一のページです。他のほとんどの結果はPython 2/pysqliteですが、私には役に立ちません。

では、CentOSボックスでPythonが使用するSQLiteバージョンをどのように更新するのでしょうか?

2
linux_confusion

新しいバージョンのRPMを見つけるか、OSのプリコンパイル済みバイナリをダウンロードする必要があります( https://www.sqlite.org/download.html )またはダウンロードソース/ソフトウェアをコンパイル/インストールします。

ソフトウェアの管理(インストール、アップグレードなど)を向上させるために、通常はRPMを使用することをお勧めします。ただし、動作するRPMが見つからない場合は、プリコンパイルバージョンをインストールするか、ソフトウェアをコンパイルしてインストールしてください。これは、特定のソフトウェアを実行するために必要なソフトウェアの最新バージョンまたは特定のバージョンを取得するために、Linuxシステムでよく行われます。

SQLiteをコンパイルした後、Pythonのライブラリをポイントできるようになります。簡単な方法は、LD_LIBRARY_PATHをSQLiteのコンパイルから取得したlibディレクトリの出力に設定することです。

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'

ライブラリを設定する前にpythonを実行すると、古いバージョンが表示されます。

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

新しいバージョンでは:

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

環境によっては、ライブラリのさまざまなバージョンの管理方法に応じて、コード内またはコードが実行される前にこれをセットアップする必要がある場合があります。コンパイルからの出力は、これに関するいくつかのアイデアを提供しますが。

1