4

Python 2.6.2 をインストールしました。ルート権限がないため、「ローカルで」実行しました。このバージョンの Python では、「sqlite3」というモジュールを使用したいと考えていました (以前のバージョンでは「pysqlite」と呼ばれていました)。理論的には、問題なくこのモジュールを使用できなければなりませんでした。このモジュールは、検討中のバージョンの Python にデフォルトで含まれているはずだからです。ただし、いくつか問題があります。入力すると:

from sqlite3 import *

私は得る:

Traceback (most recent call last):
  File "", line 1, in File "/home/verrtex/opt/lib/python2.6/sqlite3/init.py", line 24, in
    from dbapi2 import *
  File "/home/verrtex/opt/lib/python2.6/sqlite3/dbapi2.py", line 27, in
    from _sqlite3 import * 
ImportError: No module named _sqlite3

既に説明したように、この問題の考えられる理由は、モジュールが _sqlite3 をインポートしようとして失敗したため、_sqlite3.so が見つからないことです。この説明は、「/home/verrtex/opt/lib/python2.6/lib-dynload」ディレクトリに _sqlite3.so ファイルがないという事実によって裏付けられています。したがって、これは私が解決しなければならない問題です (このファイルをこのディレクトリに移動する必要があります)。

この問題を解決するには、「sqlite3 をインストールして Python を再コンパイルする」必要があることがわかりました。また、「ソースからビルドし、ライブラリを /usr/lib/python2.5/lib-dynload/ に移動する」ことで問題が解決できることもわかりました。

ただし、正確に何をすべきかは明確ではありません。「sqlite3」という python モジュールをインストールする必要がありますか、それとも sqlite-database をインストールする必要がありますか? ところで、管理者によって sqlite-database がグローバルにインストールされています。それを使用できますか、それとも独自のデータベースをインストールする必要がありますか? ちなみにroot権限はありません。問題になる可能性はありますか?または、Python モジュールをインストールする必要がありますか? この場合、ルート権限がないことは問題ですか?

また、SQLite ダウンロード ページからソース ファイルを取得し、アーカイブを抽出し、展開されたディレクトリに移動して実行するように指示されました。

./configure
make
make install

次に、新しくコンパイルしたファイルを Python ディレクトリにコピーする必要があります。新しくコンパイルされたすべてのファイルをコピーする必要がありますか? そして、正確にどのディレクトリにコピーする必要がありますか(私のPythonディレクトリにはいくつかのサブディレクトリがあります)?

私はこの問題に苦労しているので、助けていただければ幸いです。

PS 私の OS は CentOS リリース 5.3 (Final) です。

4

2 に答える 2

1

あなたは解決策を見つけたかもしれませんが、私は同じ問題で立ち往生している誰かのために私のものを書き留めました.

私のOSはpython2.6 のCentOS 6.3(Final)です。

システムに python2.7.3 をインストールしましたが、問題は解決しません。/path/to/python2.7.3/lib/python2.7/lib-dynload(_sqlite3.so はpython2.7.3 がインストールされた後にあるはずです。python2.7がインストールされる前に、 sqlite-autoconf-3071502.tar.gzがインストールされているためです。)

/path/to/python2.6/lib/python2.6/lib-dynload/_sqlite3.so次に、を python2.7 のパスにコピーします。そして、python-shell に次のように入力します。

>>> import sqlite3

また

>>> import _sqlite3

エラー報告はありません。

残念ながら、Python スクリプトを実行すると、以前と同じようにエラーが表示されました。sqlite-devel をインストール (sudo yum install sqlite-develまたはここからダウンロード) し、python2.7.3 を再インストールします。Python スクリプトをもう一度実行します。よかった!いまいましいエラーがついに解決しました。

于 2013-01-27T08:23:07.030 に答える
1

sys.pathローカルにインストールされたコピーを指していない可能性があります。または、あなたが思っている Python 2.6.2 を実行していません。

そうでない場合は、SQLite 開発ヘッダー (sqlite-dev など) が必要で、Python を再コンパイルします。依存関係が見つからないためにビルドされなかったものについて不平を言うため、コンパイルの最後に注意を払う必要があります。

編集:質問を読み直してください。

編集2:また、これをしないでください:

from module import *

これを行う:

from module import what_i_need
import module2
于 2009-09-25T23:58:45.567 に答える