5

Spatialiteをdjangoアプリで動作させようとしていますが、次の壁にぶつかりました。

 raise ImproperlyConfigured('The pysqlite library does not support C extension loading. '
django.core.exceptions.ImproperlyConfigured: The pysqlite library does not support C extension loading. Both SQLite and pysqlite must be configured to allow the loading of extensions to use SpatiaLite.
make: *** [syncdb] Error 1

pipubuntu 12.04を使用して、同じユーザー内でsudoを使用してpysqliteをインストールしました。また、pysqliteをコンパイルして、自分で拡張機能の読み込みを有効にしてみました。

ヘルプ?

4

2 に答える 2

4

pysqliteのデフォルトは、拡張機能のロードをサポートせずにビルドすることです。したがって、再構築するだけでは役に立ちません。(setup.cfgで)設定を変更する必要があります。

したがって、tarballとしてダウンロードし、setup.cfgを確認することをお勧めします。

[build_ext]
#define=
#include_dirs=/usr/local/include
#library_dirs=/usr/local/lib
libraries=sqlite3
define=SQLITE_OMIT_LOAD_EXTENSION

その最後の行が問題です。最も簡単な方法は、コメントアウトする(行の先頭に#を追加する)ことです。したがって、次のようになります。

[build_ext]
#define=
#include_dirs=/usr/local/include
#library_dirs=/usr/local/lib
libraries=sqlite3
# define=SQLITE_OMIT_LOAD_EXTENSION

次に、tarballの指示に従って再構築します(doc / install-source.txtを参照)。

于 2012-06-29T23:53:52.777 に答える
0

ここで提案された解決策は、古いシステム/Python2に適用されるようです。Pythonの新しいバージョン(3.8など)の場合、sqliteは標準ライブラリの一部として出荷され、適切に構成されたsqliteライブラリを使用してPythonをビルドする必要があります。

たとえば、homebrewとpyenvを使用するMacOSの場合(Pythonの依存関係が満たされ、拡張機能の読み込みが有効になっているhomebrewを介してsqliteがインストールされていると仮定します)。

PYTHON_CONFIGURE_OPTS="--enable-loadable-sqlite-extensions --enable-optimizations --with-openssl=\$(brew --prefix openssl)" \
LDFLAGS="-L/usr/local/opt/sqlite/lib" \
CPPFLAGS="-I/usr/local/opt/sqlite/include" \
pyenv install 3.8.2

詳細な解決策については、こちらを確認してください

于 2020-03-02T01:30:32.817 に答える