0

プログラムをpy2exeでパックしようとしています。特性 GUI を使用します。
関数 "convert_image" の image.py の import ステートメントを try ブロックの外に移動した後、生成された exe は次のポイントの 2 番目で失敗します。

1: dist\traitsui\ui_traits.py: from .image.image import ImageLibrary
2: dist\traitsui\image\image.py: from traitsui.ui_traits import HasBorder, HasMargin, Alignment

ファイル構造:

root
+-...
+-main.py
+-setup.py
+-dist
  +-...
  +-main.exe
  +-traitsui
    +-...
    +-ui_tratis.py
    +-image
      +-image.py

image.py に以下を追加することにより

import sys
raise Exception(str(sys.path))

私は得る: 例外: ['C:\Users...\dist\.']
したがって、パスが正しく設定されているようです。


エラー トレース:

Traceback (most recent call last):
  File "main.py", line 8, in <module>
  File "gui\FileSelect.pyc", line 8, in <module>
  File "traitsui\api.pyc", line 27, in <module>
  File "traitsui\basic_editor_factory.pyc", line 30, in <module>
  File "traitsui\editor_factory.pyc", line 32, in <module>
  File "traitsui\helper.pyc", line 32, in <module>
  File "C:\Users\...\dist\.\traitsui\ui_traits.py", line 158, in <module>
    from .image.image import ImageLibrary
  File "C:\Users\...\dist\.\traitsui\image\image.py", line 34, in <module>
    from traitsui.ui_traits import HasBorder, HasMargin, Alignment
ImportError: cannot import name HasBorder

setup.py: https://gist.github.com/2570888

4

2 に答える 2

0

うーん、画像に使用した Enthought パッケージに何か問題があったようです。

ここで動作する新しいセットアップ ファイル: https://gist.github.com/2570888

于 2012-05-02T15:23:57.410 に答える
0

のオプション ディクショナリに (オプションを使用して)追加packages: ["traitsui"]してみてください。py2exeskip_archive

traitsui.ui_traitspy2exeはパッケージが使用されていることを検出していないと思います。traitsuiパッケージ全体をディストリビューションに含めるように強制する必要があります。

注:推測であり、テストされていません。

于 2012-05-01T09:33:04.267 に答える