1

pysqlite をインストールしようとしました。インストール中にいくつかの疑わしいものが現れ始めます。入力した理由:

python setup.py build

最後に次のメッセージを受け取りました。

src/module.c:286: error: ‘SQLITE_PRAGMA’ undeclared here (not in a function)
src/module.c:287: error: ‘SQLITE_READ’ undeclared here (not in a function)
src/module.c:288: error: ‘SQLITE_SELECT’ undeclared here (not in a function)
src/module.c:289: error: ‘SQLITE_TRANSACTION’ undeclared here (not in a function)
src/module.c:290: error: ‘SQLITE_UPDATE’ undeclared here (not in a function)
src/module.c:291: error: ‘SQLITE_ATTACH’ undeclared here (not in a function)
src/module.c:292: error: ‘SQLITE_DETACH’ undeclared here (not in a function)
src/module.c: In function ‘init_sqlite’:
src/module.c:419: warning: implicit declaration of function ‘sqlite3_libversion’
src/module.c:419: warning: passing argument 1 of ‘PyString_FromString’ makes pointer from integer without a cast
error: command 'gcc' failed with exit status 1

最後の行を無視して、続行することにしました。だから、私は入力しました:

python setup.py install

そして、再び、同様のエラーメッセージが表示されました:

src/module.c:288: error: ‘SQLITE_SELECT’ undeclared here (not in a function)
src/module.c:289: error: ‘SQLITE_TRANSACTION’ undeclared here (not in a function)
src/module.c:290: error: ‘SQLITE_UPDATE’ undeclared here (not in a function)
src/module.c:291: error: ‘SQLITE_ATTACH’ undeclared here (not in a function)
src/module.c:292: error: ‘SQLITE_DETACH’ undeclared here (not in a function)
src/module.c: In function ‘init_sqlite’:
src/module.c:419: warning: implicit declaration of function ‘sqlite3_libversion’
src/module.c:419: warning: passing argument 1 of ‘PyString_FromString’ makes pointer from integer without a cast
error: command 'gcc' failed with exit status 1

その後、pysqlite が動作するか試してみました。python-command-line モードで入力した場合

from pysqlite2 import *

Python は文句を言いません。ただし、私の本の例に従おうとすると、次のようになります。

from pysqlite2 import dbapi2 as sqlite

エラー メッセージが表示されます。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pysqlite2/dbapi2.py", line 27, in <module>
    from pysqlite2._sqlite import *
ImportError: No module named _sqlite

なぜそれが起こるのか、この問題をどのように解決できるのか、誰にも考えがありますか? ところで、私は新しいバージョンの Python をインストールしました。「python -V」は「Python 2.6.2」を提供します。よろしくお願いします。

4

3 に答える 3

3

最後の行を無視して、続行することにしました。

最後の行を無視することはできません。エラーが発生したため、コンパイルできませんでした。次に実行したことは、コンパイルできなかったため、インストールできないことを示していました。次に、Python は、コードがインストールされていないため、コードを実行できないと伝えました。インストールに進む前に、コンパイル手順を実行する必要があります。

于 2009-09-22T13:41:09.763 に答える
2

pysqlite をビルドする正しい方法が Web サイトに掲載されました。

$ tar xvfz <version>.tar.gz 
$ cd <version> 
$ python setup.py build_static install 

build_static は最新の sqlite コードをダウンロードし、それに対して静的にコンパイルします。参考までに、これを 1and1 共​​有ホストで実行しました。

http://trac.edgewall.org/wiki/PySqlite#Buildingpysqlite

于 2010-11-19T04:30:21.963 に答える
2

Python 拡張機能のコンパイルのレッスンが必要ですが、どのディストリビューションを使用していますか? 指定されたマクロ定義を持つ sqlite ヘッダーが欠落しているようです。Python セットアップが実行されると、バインドが sqlite ネイティブ バイナリにコンパイルされ、いくつかの .py ファイルがライブラリにコピーされます。_sqlite は通常、ビルドされなかった sqlite ライブラリへの呼び出しを含む .pyd ファイル (dll に相当) です。

sqlite ヘッダーなどの存在を確認します。

于 2009-09-22T14:04:18.143 に答える