3

PySide と Qt を使用して Python でアプリケーションを作成しており、Web ページを開く必要があるため、QtWebKit の QWebView を使用しました。

私の開発マシンでは、コードを直接実行することと、py2exe の出力を実行することの両方で問題なく動作します。「クリーン」なマシン (Python も Qt もインストールされていない) では、py2exe の出力に Web ページが表示されません。アプリケーションの残りの部分は正常に動作し、クラッシュや例外はありませんが、QWebView は空白のままです。

WebKitプラグインの欠落に関連する問題を防ぐために、画像やその他のものなしでURLを開こうとしました. QWebView で example.com を開くだけの簡単なプログラムも試してみましたが、これもうまくいきませんでした。

誰かが似たようなことに遭遇しましたか?また、py2exeが「パッケージ」に取り込まない可能性のある「文書化されていない」依存関係がQWebKitにあるかどうかは誰にもわかりますか?

4

4 に答える 4

2

まだ問題がある人のために、そこに行きます:

http://developer.qt.nokia.com/wiki/Packaging_PySide_applications_on_Windows

py2exe側から手動で含める必要があります:)

于 2011-04-20T08:39:42.240 に答える
2

私はPyInstallerを試してみます。依存関係をスニッフィングしてパッケージ化するため、PyQT のものをコンパイルするときにうまく機能するようです (まあ、そうしているようです)。私も Python で QT アプリケーションを作成していましたが、すぐに動作する単一のバイナリを吐き出しました。

ここにリンクがあります:http://www.pyinstaller.org/

幸運を!

于 2011-01-07T20:14:38.813 に答える
1

py2exeオプションでこれを試してください:

packages = ["PySide.QtNetwok"]
于 2011-04-29T21:04:36.200 に答える
1

選択した回答は、実際には質問に回答していません。私は同様の問題を抱えていました.私のアプリケーションはpysideとQtWebKitを使用しています.py2exeにバンドルされた後、開発マシンでは正常に動作しましたが、ユーザーマシンでは動作しませんでした.

まず、setup.py に明示的に PySide.QtNetwork を含める必要があります:リンク

...
setup(
    ...
    options = {
        'py2exe': {
            ...
            'includes': ['PySide.QtNetwork'],
            ...
        }
    }
...

その後、openSSL DLL をパッケージ化する必要があります:リンク

ここに行って win32openssl を取得します (ライト バージョンを使用することもできます) libeay32.dll と ssleay32.dll をプロジェクト フォルダーにコピーし、両方をデータ ファイルとして setup.py に次のように追加します。

...
setup(data_files=[('', ['libeay32.dll','ssleay32.dll'])],
...

最後に、画像サポートを追加する必要があります。画像プラグインをデータ ファイルとして追加します。最終的には次のようになります。

...
setup(data_files=[("imageformats", glob(r'C:\Python27\Lib\site-packages\PySide\plugins\*.*')),('', ['libeay32.dll','ssleay32.dll'])],
...
于 2012-02-19T21:15:23.527 に答える