問題タブ [pysqlite]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - OS X に Python 用 Spatialite (GeoDjango) をインストールする
GeoDjango 用の Spatialite をインストールしようとして、髪をかきむしっています。
私はすでに Homebrew を使用しています。これは一般的に簡単で便利なので、最初はGeoDjangoのHomebrew の指示に従おうとしました。
しかし、これは、Spatialite などのデータベースをインストールするまでには至りません。次のステップは、Spatialite 自体を試してインストールすることですが、Django ドキュメントで提供される Homebrew 固有の手順はありません。
完璧に見えるこのチュートリアルを見つけました.GeoDjango用のSpatialiteのHomebrewおよびvirtualenvフレンドリーなインストールです。
しかし、うまくいきません... pysqlite
Homebrewからインストールした空間化されたものではなく、OS Xに付属する非空間対応バージョンのSQLiteにリンクされているようです.Djangoが試したときにこのエラーが発生しましたデータベースに接続するには:
「pysqlite ライブラリは C 拡張機能の読み込みをサポートしていません。SpatiaLite を使用するには、拡張機能の読み込みを許可するように SQLite と pysqlite の両方を構成する必要があります。」
pysqlite の作成者は、Github での助けを求める私の嘆願に応答しておらず、Google からも何も見つかりませんでした。
そこで私は製図板に戻り、GeoDjango ドキュメントの「Mac OS X 固有の手順」に従うことにしました... KyngChaos バイナリ パッケージからさまざまな geo ライブラリをインストールすることによって。
UnixImageIO
ドキュメントには「パッケージを上記の順序でインストールする」と書かれていますが、最初にインストールしないとインストールできないことがわかりましたPROJ
。Spatialite バイナリをダウンロードするためのドキュメントのリンク ( http://www.gaia-gis.it/spatialite-2.3.1/binaries.html ) が壊れているため、代わりに KyngChaos の「Spatialite Tools v4.1」を使用しました。
次のステップに進むと、次のエラーが表示されます。
この時点で何が問題なのかよくわかりません。
ここSOには、 KyngChaosルートをたどり、Homebrewルートから得た同じ「拡張機能のロードを許可するには、SQLiteとpysqliteの両方を構成する必要があります」というエラーが発生する人がいます。
Django へのサポートを追加するためのこのチケット #17756を見つけました - これはすべてを簡単に実行できるはずですが、残念ながらどちらも機能しません (チケットの下部にあるコメントを参照してください)。pyspatialite
pyspatialite
pip install
ソースからすべてを手動でビルドしようとするのは少し気が進まないので、同じ問題に再び遭遇する可能性が高いと思われますが、途中で不可解なコンパイラエラー、魔法のフラグ、パスなどに関する情報をグーグルで検索するのに何時間も費やしています.
私はあきらめて、Postgres/PostGIS を使用する準備ができています。
ios - iOS での SQLite (Spatialite) クエリは 64 ビット シミュレータで動作しますが、それ以外は機能しません
Django 管理コマンドによって生成された Spatialite データベースがあり、これを iOS アプリに埋め込んでいます。データベースは完全に開きますが、iOS でのデータベースのクエリは、64 ビット デバイスで実行している場合にのみ機能することがわかりました。シミュレートされているかどうかに関係なく、その他のデバイスは、 のSQLITE_NOTADB
呼び出しsqlite3_prepare_v2
時にエラー メッセージ とともに出力を生成しますfile is encrypted or is not a database
。
明らかに、このデータベースを作成した Mac は 64 ビット マシンですが、SQLite データベースはビットにとらわれない必要があるため、これがどのように問題になるのかわかりません。おそらく、これは Spatialite データベースには当てはまりませんか? 64 ビット アーチ iOS と同じ方法でファイルを読み取るために、SQLite 関数 (またはコマンド)で使用できるフラグはありますsqlite3_open
か? それとも、django からよりプラットフォーム互換性のある形式で Spatialite db を生成する方法があるのでしょうか? ここでの提案は大歓迎です。sqlite3_prepare_v2
pragma
誰かが明らかな問題を見つけることができる場合、これが私のコードのスニペットです:
アプリを起動し、64 ビット以外の iOS プラットフォームで実行するとgetLockupsForRegion:
、ログ出力が生成されます。
そして、arm64 の下のログ出力:
バージョン:
- パイソン: 2.7.5
- ジャンゴ: 1.6
- PySqlite: 2.6.3
- Sqlite (Spatialite db を生成するマシン上): 3.8.1
- Spatialite (Spatialite db を生成するマシン上): 4.1.1
- Sqlite (iOS): 3.8.1
- Spatialite (iOS): 4.1.1
これに関する提案は大歓迎です!
python - pysqliteがqmarkのパラメータ化を受け入れない
Python pysqlite not accept my qmark parameterizationで回答されたものと同様の質問があり ます
私の問題は次のとおりです。文字列自体ではなく、何かのような文字列のパラメーター化された検索が必要です。
これは私の声明です:
pysqlite は次のエラーを返します。
これは qmark がリテラルとして解釈されるためであることは理解しています。ただし、qmarks がリテラルとして解釈されずに、qmarks を使用してそのような「like」検索を指定する方法がわかりません。
次の検索は成功します。
しかし、私が理解している限り、それはまさにformat() 関数を使用すべきではない方法です。
python - SQLite でカーソルの最後の行をフェッチする
Android では、cursor.moveToLast() を使用してカーソル内の最後の項目をフェッチすることに非常に慣れています。ただし、Python の SQLite に相当するものが見つからないようです。カーソルの最後の行を取得できる関数はありますか?
cursor.fetchall() を呼び出してリストの最後の項目を取得することもできますが、それよりも効率的な方法はありますか? ありがとう。
python - pysqlite の IntegrityError:「NOT NULL」と「UNIQUE」違反を区別する
pysqlite では、NOT NULL
またはUNIQUE
制約に違反すると、同様に IntegrityError が発生します。残念ながら、この Exception タイプはエラー コードを提供せず、メッセージのみを提供します。
したがって、一意の制約違反を無視したいとしましょう。これは、特定のデータでは安全であることがわかっているためですが、キー列の Null 値は報告する必要があります。
私は次の解決策を思いつきました:
ただし、エラー メッセージの解析は間違っているようで、信頼できない可能性があります。これを行うためのより良い方法はありcon.executemany()
ますか?
python - pysqlite のインストール中にエラーが発生する
pysqlite をインストールしようとしていますが、以下のエラーが発生します -
私もピップを試しました..しかし、運がありません!!
誰でもこのエラーを追跡する方法を提案できますか? ありがとう !
python - pandas pythonでのSQLクエリ
私はpython pandasでSQLクエリを書いています:
エラー:
Unicode 文字列に切り替えるには? 私はpython2.7を使用しています。
python - pysqlite2._sqliteという名前のモジュールがありませんフラスコでエラーが発生しました
こんにちは、pysqlite2._sqlite という名前のモジュールがありませんというエラーに問題があります
私はflaskとvirtualenvでSQLalchemyを使用しています
このようなモデルでクエリを実行すると
次のエラーが発生しました
最初のエラーは
だから私は pip install pysqlite でpysqliteをインストールします
私はpysqliteを再インストールしようとします
しかし、同じ問題が発生しています
そして、私はsqlahcemyコードをチェックします、それはこのようなモジュールをインポートします
しかし、コンソールでは
pysqlite2 インポート dbapi2 から
は働いている。
だから私はpysqlite2ライブラリフォルダをチェックします
_sqlite.so ファイルがあることがわかりました。
何が問題ですか?
python - sqlite3 / pysqlite を使用してデータベース間で結合する
2 つの別個のデータベース ファイルがあり、それぞれに一致する主キーを持つテーブルがありますが、データは異なります。もう一方のテーブルの値に基づいて、あるテーブルから行を取り出したい。の CLI ではsqlite3
、次のようにします。
を使用してこのようなクロスデータベース結合を再作成するにはどうすればよいpysqlite
ですか?