2012-04-03 11 views
2

を持っていない私はPython3.2プロジェクトを凍結し、そして得られた実行可能ファイルを実行した後、次のエラーを取得しようとしている:format_exceptionを呼び出したときに発生cx_Freezeエラー:「str」はオブジェクトが属性「__cause__」

例外を。 'str'オブジェクトには属性 '__cause__'がありません。 元の例外:名前形式をインポートできません。

プロジェクトには、__init__.pyファイルを含む3つの内部パッケージ/モジュールがあります。それは外部パッケージを使用します:sqlite3、PyQt4、matplotlib、numpy、scipy。

from cx_Freeze import setup, Executable 

includes = ['re', 'PyQt4', 'os', 'scipy', 'csv', 'sqlite3', 'itertools', 'numpy', 'sys', 'matplotlib'] 
excludes = [] 
packages = [] 
path = [] 

GUI2Exe_Target = Executable(
    # what to build 
    script = "xshape_report.py", 
    #initScript = None, 
    base = 'Win32GUI', 
    #targetDir = r"dist", 
    #targetName = "xshape_report.exe", 
    #compress = True, 
    #copyDependentFiles = True, 
    #appendScriptToExe = False, 
    #appendScriptToLibrary = False, 
    icon = None 
    ) 

setup(

    version = "0.1", 
    description = "Reporting system", 
    author = "Katya", 
    name = "Xshape report", 

    options = {"build_exe": {"includes": includes, 
          "excludes": excludes, 
          "packages": packages, 
          "path": path 
          } 
       }, 

    executables = [GUI2Exe_Target] 
    ) 

私が残した場合、同じエラーが空に含まれています:

は、ここに私のsetup.pyです。 理由は何でしょうか?このために検索し、他の人々を助けるためにメーリングリストから私の答えをコピー

+0

あなたのコードでも、Pythonでも例外が発生するのですか?その奇妙な例外は、 'format'はモジュールではなく関数なので、なぜフォーマットをインポートしようとしているのかわかりません。 – aquavitae

+0

凍ったときのみ。あなたの アプリケーションに問題があります。恐らく検出していないモジュールがあります。 は、コピーする必要があります。 これは表示されるはずです。cx_freezeメーリングリストで次のような回答があります。エラーがどこで発生するかについての詳細はありますが、 "'str'オブジェクトには属性 '__cause__'"というメッセージが表示されないcx_Freezeのバグがあります。cx_Freezeの開発版をテストする場合は修正する必要があります適切なトレースバックを取得します。 " – Katya

+0

フルコードへのリンクを投稿できますか? – aquavitae

答えて

2

に「名前の形式をインポートすることはできません」ビットアプリケーションといくつかの問題です。おそらく、コピーする必要があることを検出していないモジュールがあります。

エラーがどこで発生するかについての詳細を表示する必要がありますが、'str' object has no attribute '__cause__'というメッセージが表示されるcx_Freezeにバグがあります。これはdevelopment versionで修正されていますので、使用すると正しいトレースバックが得られます。すぐに新しいリリースができればと思っています。

将来的には:この問題はcx_Freeze 4.2.3で発生していますが、この修正プログラムのリリースは4.3.0になると思います。このバージョン(no attribute '__cause__')にそれ以降のバージョンを実行する場合は、バグがあることを確認してください。

+1

ありがとう!問題を解決し、最新の開発版が意味のある痕跡を残し、必要なすべてのモジュールがビルドにコピーされるようにsetup.pyを適合させることができました。 – Katya

関連する問題