2

py2appメーリングリストのこの投稿で説明されているのと同じ問題が発生しています。

sqliteデータベースを使用するPythonアプリケーションがあります。すべての依存関係がインストールされている私のマシンでは、問題はありません。ただし、アプリケーションをpy2appにバンドルすると、データベースにアクセスするためのメニューをクリックすると、次のエラーが発生します。

データベースエラー:ドライバーがロードされていませんドライバーがロードされていません

Windowsインストーラーの場合、のファイルを \Qt\version\plugins\sqldrivers\*.*にコピーできます。\myApp\sqldrivers\*

Mac上の同じファイルは /opt/local/share/qt4/plugins/sqldrivers(Macports経由でインストールされた)にあります。

sqldriversただし、ディレクトリをアプリケーションResourcesまたはディレクトリにコピーしてFrameworksも、同じエラーが発生します。

py2appを使用して構築されたアプリケーションにsqliteサポートを追加するにはどうすればよいですか?

4

3 に答える 3

1

私はこれを次のように機能させることができました:

py2app でビルドしたら、アプリケーションの Contents ディレクトリ内に新しいpluginsディレクトリを作成します。

次に、sqldrivers/libqsqlite.dylib をこのプラグイン ディレクトリにコピーします。

その後、install_name_tool を使用して libqsqlite.dylib のライブラリ リンクを変更し、システムの Qt ライブラリではなく、アプリケーションの Frameworks ディレクトリにある Qt ライブラリを指すようにする必要があります。

于 2012-06-30T05:36:43.917 に答える
1

pyside レシピには、必要な qt-plugins を指定する方法があることがわかりました...

    options=dict(py2app={
                         'argv_emulation': True,
                         'qt_plugins' : "sqldrivers",
                         }
                 ),

これにより、すべての sqldrivers が適切なディレクトリに配置され、qt.conf が正しくセットアップされます。

于 2015-12-16T02:58:56.053 に答える
1

この投稿で彼が言ったことを試しましたか? それが言及したpy2app setup.pyの使用法に関する質問

sqlalchemy.dialects.sqlite をパッケージとして含める必要があります

于 2012-06-29T13:21:38.143 に答える