2012-08-03 2 views
6

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

私はSQLOBJECT CPythonのためにインストールされている、それが正常に動作しますが、私はIronPythonの中で、同じパッケージを使用している場合、私は「はImportError:いいえモジュールの名前_mysql」を取得します。これは、ironpythonがmysql APIにアクセスするために必要なCベースの.dllをロードできないことを意味しています。回避策はありますか、それともありますか?

+0

ていると思われます。 php/Databases_with_Odbc)は、Odbcを使って接続する方法を示していますが、インストールしているのはあなたがすでにこれは私が見つけることができる唯一の修正です。(MySQLのみ使用) –

答えて

-1

あなたはpythonで「_mysql」モジュールをインストールする必要があります。私はどのバージョンのpythonを使用しているのか分かりません。ここで

は、あなたがこれを見た場合、それは可能性がありますのpython 2.xまたはPythonの3.xの

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

+0

質問は特に鉄のpythonについてですが、あなたの答えはcpythonのようです。 –

-1

は '_mysql' モジュールをインストールするには、いくつかのリンクですMySQLdbをインストールするときに間違ったことをしました。 READMEを再読み込み(または読み込み)します。 _mysqlは、MySQLクライアントライブラリとインタフェースする低レベルのCモジュールです。

過去にMySQLdbのさまざまなバージョンが "奇妙な"プラットフォームでビルドの問題を抱えていました。 BSDやMac OS Xを含むUnix/POSIXプラットフォームでは一般的に問題はありませんが、Windowsの場合は問題があります.Windowsのインストールではmysql_configが使用できないためMySQLのすべてではない場合1.2.1は、これらの問題のため、ほとんどを解決するが、セットアップがどこ含めるために何ライブラリMySQLとを見つけるために知っているように、あなたはまだ設定ファイルを編集する必要があります。

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

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

ソリューション:リビルト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 

コンパイラのミスマッチだったようですマックOS Xから1が、GCCの2つの異なるバージョン間のこの時間です。 GCCのほぼすべてのメジャーリリースがABIを何らかの理由で変えているようだ。例えば、GCC-3.3とGCC-4.0でコンパイルされたコードをリンクするのは問題になるかもしれない。ソースコードSQLOBJECTをみる

+0

-1:この質問は特にironpythonに関するものです。タイトルと最初の文章で言及します。あなたの答えは、このモジュールをironpythonで使ってみるという独特の状況に対処するために何もしません。 –

1

純粋のpythonで、コードはCPythonのに制限されるのMySQLdbに依存しています。それmysql.connectorが従っていない:あなたは純粋なPythonで書かれmysql.connector(http://dev.mysql.com/doc/connector-python/en/index.html)ライブラリを使用するようにコードを変更した場合

しかし、あなたは

注意をMySQLへの接続をestanblishすることができるはずですMySQLdbは同じAPIとsource code

に書き換え、かなりの量が必要になります私はあなたがこの[リンク](http://www.ironpython.info/indexをチェックアウトするならば、これはあなたの最高の回避策

関連する問題