0

わかった、

私はすでにこの質問をしましたが、私ができる限り明確ではなかった可能性があり、自分でいくつかの間違いを犯した可能性があることに気付きました.

また、Python の sqlite3 で同じ問題または類似の問題を抱えている人がたくさんいることに気付きました。だから私はこれをできる限り明確に尋ねると思ったので、同じ問題を抱えている他の人にも役立つかもしれません.

モジュールを有効にして動作させるために、コンパイル時にpythonが何を見つける必要がありますか? (詳細には、「sqlite dev-files」だけでなく、正確なファイルを意味します)?

また、ライブラリが必要な場合は、適切なアーキテクチャでコンパイルする必要があると思われますか?

4

2 に答える 2

0

cpython の sqlite モジュールのソース コードは、さまざまな sqlite3 関数を呼び出し、sqlite3 構造を使用します (Python のクラス定義に似ています)。

ソース コードを (pythonバイナリに) コンパイルする際に、C コンパイラはこれらの関数の定義を必要とします (たとえば、パラメーター カウントが一致しない場合に中止できるようにするため)。そのため、Python の sqlite モジュールには、関数のパラメーターに関する情報 (実装に関する情報は含まれません) を含むsqlite3ヘッダーファイルsqlite3.hが含まれています。(ウィキペディアのヘッダー ファイルの詳細情報)sqlite3_*

また、 Python バイナリをリンクする場合、リンカは、使用されている sqlite3 メソッドやその他のオブジェクトの実際のバイナリ表現に関する情報を取得する必要があります。この情報は、、、または/usr/libで終了するファイルにあります。それらはターゲットアーキテクチャ (つまり、作成しようとしているバイナリのアーキテクチャ) 用にコンパイルする必要があります。ほとんどの場合、それが現在のシステムのアーキテクチャです。.so.la.a

于 2012-09-14T08:16:27.637 に答える
0

私が理解しているように、あなたは Python フォーム ソースをインストールしたいと考えています。sqliteモジュールを利用できるようにするには、 sqliteパッケージとその開発ファイルをインストールする必要があります(たとえば、CentOSの場合はsqlite-devel )。それでおしまい。必要なパッケージをインストールした後、ソースを再構成する必要があります。

ところで、他のモジュールでも同じ問題に直面するでしょう。

于 2012-09-14T08:14:31.617 に答える