7

sqlobjectを使用して、iron python から mysql データベースに接続することは可能ですか? もしそうなら、どのように?何をインストールする必要がありますか?

cpython 用に sqlobject をインストールしましたが、問題なく動作しますが、ironpython で同じパッケージを使用すると、「ImportError: No module named _mysql」というメッセージが表示されます。これは、ironpython が mysql API へのアクセスに必要な C ベースの .dll を読み込めないことを意味していると理解しています。回避策は何ですか、またはありますか?

4

4 に答える 4

-1

これが表示された場合、MySQLdb のインストール時に何らかの間違いを犯した可能性があります。README を読み直してください (または読んでください)。_mysql は、MySQL クライアント ライブラリとやり取りする低レベルの C モジュールです。

過去のさまざまなバージョンの MySQLdb には、「奇妙な」プラットフォームでのビルドの問題がありました。この場合の「奇妙な」は「Linux ではない」という意味ですが、通常、BSD や Mac OS X を含む Unix/POSIX プラットフォームでは問題はありません。 MySQLの。1.2.1 は、これらの問題のすべてではないにしてもほとんどを解決しますが、セットアップが MySQL の場所と含めるライブラリを認識できるように、構成ファイルを編集する必要があります。

ImportError: libmysqlclient_r.so.14: cannot open shared object file: No such file or directory

.so の後の数字は異なる場合がありますが、これは、あるバージョンの MySQL に対してコンパイルされたバージョンの MySQLdb があり、それを別のバージョンに対して実行しようとしていることを意味します。共有ライブラリのバージョンは、メジャー リリース間で変更される傾向があります。

解決策: MySQLdb を再構築するか、一致するバージョンの MySQL を取得します。

これを引き起こす可能性のある別のこと: MySQL ライブラリがシステム パス上にない可能性があります。

ソリューション:

set the LD_LIBRARY_PATH environment variable so that it includes the path to the MySQL libraries.

set static=True in site.cfg for static linking

reconfigure your system so that the MySQL libraries are on the default loader path. In Linux, you edit /etc/ld.so.conf and run ldconfig. For Solaris, see Linker and Libraries Guide.

ImportError: ld.so.1: python: fatal: libmtmalloc.so.1: DF_1_NOOPEN tagged object may not be dlopen()'ed

これは、Solaris の奇妙なものです。どういう意味ですか?何も思いつきません。ただし、Python と MySQL の間に何らかのコンパイラまたは環境の不一致がある場合、このようなことが発生する可能性があります。たとえば、一部の商用システムでは、独自のコンパイラでコンパイルされたコードと、GCC でコンパイルされたコードがある場合があります。それらは常にかみ合うわけではありません。これに遭遇する 1 つの方法は、さまざまなベンダーからバイナリ パッケージを入手することです。

解決策: ソースから Python または MySQL (あるいは両方) を再構築します。

ImportError: dlopen(./_mysql.so, 2): Symbol not found: _sprintf$LDBLStub Referenced from: ./_mysql.so Expected in: dynamic lookup

これは Mac OS X のものです。コンパイラの不一致だったようですが、今回は GCC の 2 つの異なるバージョン間で発生しました。GCC のほぼすべてのメジャー リリースでは、なんらかの理由で ABI が変更されているようです。たとえば、GCC-3.3 と GCC-4.0 でコンパイルされたコードをリンクすると、問題が発生する可能性があります。

于 2012-12-30T00:06:04.377 に答える
-1

'_mysql' モジュールを Python にインストールする必要があります。どのバージョンの Python を使用しているかわかりません。

Python 2.x または Python 3.x 用の '_mysql' モジュールをインストールするためのリンクを次に示します。

http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

http://www.codegood.com/archives/129

于 2012-12-24T04:52:55.993 に答える