2012-03-06 19 views
2

可能性の重複:
Outputed py2exe exe won't run only when signed: ImportErrorcxfreeze windows実行ファイルに電子署名しますか?

私は、Python 3.2を使用してプログラムを作っています。私はcxfreezeを使ってスクリプトを実行可能ファイルに変換します。フリーズされた実行可能ファイルは、変更せずに実行すると正常に動作しますsigntool.exeを使用して実行可能ファイルに署名しようとすると、exeはImportErrorを発生させます。フリーズしたpython3実行ファイルにデジタル署名する方法はありますか?

ありがとうございます。

+0

@STATUS_ACCESS_DENIED上記リンクの質問(および解説)は、Python 2.xに関連しています。 py2exeとpyinstallerはpython 3.xでは使用できません。ありがとう – simha

+0

まだ彼らは同じように動作するようです。リンクされたトピックを読むと、そのアプローチがうまくいかない理由がわかります。 'signtool'は基本的に、スタブがPythonコードを実行するために必要なオーバーレイ/ペイロードを壊してしまうからです。 – 0xC0000022L

+0

[pyinstaller](http://stackoverflow.com/a/7199367/538850)ソリューションはpython3で動作しないので、問題は同じですが解決策ではないことを理解しています。だから私はpython3のための別の質問を投稿するのが適切だろうと思った。とにかく、リンクと説明に感謝します。 – simha

答えて

1

だけでなく実行可能ファイルを生成するための3つのオプションがあります。 バージョンのcx_Freezeで利用可能だった最初のオプションは、zipファイルを 実行可能ファイル自体に追加している唯一のオプションです。 2番目のオプションは、実行可能ファイルと同じ名前のプライベートzipファイル を作成しますが、拡張子は.zipです。 finalオプションは、 library.zipというzipファイルを作成し、このzipファイルにすべてのモジュールを配置するデフォルトです。

私の考えでは(重複して)トピックhereを読むと、これが失敗するのは明らかです。言語の異なるバージョン、はい。別のツール、はい。別のアプローチ、いいえ!このエラーから、最初のオプションを使用していて、signtoolがペイロードを妨害していることが明らかです。

+0

3番目のオプションを使用して問題を解決しました。再度、感謝します。 – simha

0

私の知る限り、signtool.exeは.NETベースのアプリケーションにしか署名できません。あなたのアプリは.NETベースではないので、この失敗(例外)が発生します。 hereから

+2

_signtool_は.NETバイナリに署名するだけではありません。あなたの混乱は.NET SDKに付属しているという事実から来るかもしれませんが、Windows SDKも付属しています。 – pezcode

+0

...とWDK。 – 0xC0000022L

+0

この人にごめんなさい!どちらも正しいです。これを修正していただきありがとう:-) – mox

関連する問題