3

私はPythonで働いています。私のファイルGUI.pyは、ソフトウェアに新しいプラグインを含めるために Yapsy を使用しています。すべての作業が完了したので、py2exe を使用して実行可能ファイルを生成したいと考えています。Yapsy とそのすべてのモジュールを含めるように py2exe を注文する方法がわかりません。私はそれを試しましたが、うまくいきません:

opts = {
    'py2exe': { "includes" : ["yapsy.PluginManager","sip", "matplotlib.backends",  "matplotlib.backends.backend_qt4agg",
                               "matplotlib.figure","pylab", "numpy","matplotlib.backends.backend_tkagg"]}

...

setup(
      name='PImageQT',
      version='1.0',
      author='Jaime',
      package={'images/*', 'Windows6S/*', 'modulos6S/*', 'OperacionesPlugins/*'},
      scripts=['GUI.py'],
      console=["GUI.py"],
      options=opts,
      data_files=data_files,
      zipfile=None
      )

このリンクhttp://notinthestars.blogspot.com.es/2011/04/using-python-plugin-scripts-with-py2exe.htmlで何かを見つけましたが、問題は解決しません。

各プラグインの Gui.py ファイルで、アクションをメニューに追加します。実行可能ファイルのこのメニューは表示されません。

誰も私がそれをしなければならない方法を知っていますか?

どうもありがとうございました。

編集:

ブレークポイントを使用しましたが、yapsy は正常に動作しますが、プラグイン ディレクトリが見つかりません。ディレクトリの名前は同じです。

編集2:

パスは問題なく、ディレクトリはパスに含まれています。py2exe で圧縮した後、プラグイン ディレクトリが見つからない理由がわかりません。ディレクトリを設定するための私のコード行は、他の Web ページと同じです。self.manager.setPluginPlaces(["plugins"])

編集3:

相対パスを使用してプラグインを検索しようとしましたが、機能しません。

self.manager.setPluginPlaces([os.getcwd() + os.sep + "plugins"])

編集4:

今日、ディレクトリを一覧表示しようとしましたが、ディレクトリ「プラグイン」が含まれています。何も理解できませんが、問題は続きます。

print(os.listdir('.'))

編集5:

これは終わりのない物語です。問題がpy2exeであるかどうかを確認するために、PYInstallerを使用して実行可能ファイルを作成しました。そして、それは機能しません。問題はヤプシーだと思います。何か案は?

4

2 に答える 2

2

あなたの編集から、問題はパッケージ化されたプラグインへのアクセスに関連しているようです(yapsyモジュール自体ではありません)。

そのためには、次の 2 つの点を確認する必要があります。

  • 呼び出すときはself.manager.setPluginPlaces(["plugins"])、パス「plugin」が、考えているディレクトリに関連していない可能性があることに注意してください。py2exe の "where Am I" faq のヒントを使用して、より具体的なパスを使用する必要があります: http://www.py2exe.org/index.cgi/WhereAmI

  • また、プラグインを data_files としてパッケージ化しようとする場合もあります (リンク先の Web ページのように)。「パッケージ」引数 (コード サンプル) が py2exe によってどのように処理されるかはもうわかりません。

編集:後で来る可能性のある人のために、答えは以下のコメントにあります。基本的に、プラグインの1つにインポートエラー(py2exeによってパッケージ化されていない依存関係)があり、このインポートエラーはpythonの標準ロギングは、次のように適切に構成/アクティブ化されています。

import logging
logging.basicConfig(level=logging.DEBUG)
于 2012-11-09T09:34:42.163 に答える
0

おそらくすべてのyapsyを含める必要があります

opts = {
    'py2exe': { "includes" : ["yapsy","sip", "matplotlib.backends",  "matplotlib.backends.backend_qt4agg",
                               "matplotlib.figure","pylab", "numpy","matplotlib.backends.backend_tkagg"]}

...

setup(
      name='PImageQT',
      version='1.0',
      author='Jaime',
      package={'images/*', 'Windows6S/*', 'modulos6S/*', 'OperacionesPlugins/*'},
      scripts=['GUI.py'],
      console=["GUI.py"],
      options=opts,
      data_files=data_files,
      zipfile=None
      )

ただの勝手な推測ですが

于 2012-11-08T18:42:27.810 に答える