Centos 7.4システムにPython 3.6をインストールしており、更新されたSQLiteバージョンが必要です(いくつかの新機能を使用しています)。付属のSQLiteバージョンは3.7.17で、非常に古いバージョンです。
あなたはそうしなかった方法? Windowsでは、Python \ DLLsディレクトリにあるsqlite.dllファイルを必要なファイルに置き換えるのは簡単ですが、Linuxでこれを行う方法についての情報が見つかりませんでした。
この質問は、以前に要求されたが回答されていないことがわかります。https://stackoverflow.com/questions/39064472/how-to-update-sqlite3-in-centos-6-6- これは私が検索した唯一のページです。他のほとんどの結果はPython 2 / pysqliteに関するものなので、役に立ちません。
それでは、CentOSシステムでPythonが使用しているSQLiteのバージョンを更新する方法は?
ベストアンサー1
最新バージョンのRPMを探すか、オペレーティングシステムに合わせてプリコンパイルされたバイナリをダウンロードする必要があります(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
環境によっては、ライブラリのさまざまなバージョンを管理する方法によっては、コード内またはコードが実行される前にそれらを設定する必要があります。コンパイルされた出力を見ると、これについていくつかのアイデアが得られます。