2016-12-11 5 views
0

そのままスクリプトを実行してcxFrezeでフリーズすると、エンコーディングエラーが発生します。それを調べたところ、cxFreezeは 'ascii'エンコーディングに戻っているようですが、Pythonはデフォルトで 'utf-8'を使用しています。CxFreezeがデフォルトのエンコーディングをASCIIに戻します

import sys 
print sys.getdefaultencoding() 

を短くすることができませんでした:

は、ここで私が使用して簡単なスクリプトです。 setup.pyファイル:

import cx_Freeze 

executables = [cx_Freeze.Executable("test_encoding.py")] 

cx_Freeze.setup(
    name = 'test encoding', 
    version = '0.1', 
    description = "Nothing much...", 
    executables = executables, 
) 

私はそれを直接実行する場合:

> python27 test_encoding.py 
utf-8 

しかし、凍結中:

> build\exe.win32-2.7\test_encoding.exe 
ascii 

それがなぜ起こるか誰もが知っている...とどのように修正しますそれ?あなたが想像しているように、それは特にwxPythonで多くのエラーを作り出します。

バージョン情報:

  • パイソン:2.7(32ビット)
  • オペレーティングシステム:Windows 10(64ビット)
  • cx_Freeze:4.3.4
+0

どのバージョンのcx_Freezeを使用していますか? –

+0

4.3.4、申し訳ありませんが、私は質問を編集しました。 –

答えて

0

Pythonで2.7デフォルトのエンコーディングはASCIIなので、これが期待されます。 Pythonを直接実行しているときに、デフォルトのエンコーディングをUTF-8に変更していることを調べる必要があります。サイトのデフォルトが原因である可能性があります。

+0

はい...それは私をあまり驚かないでしょう。私はsite.pyを調べましたが、デフォルトでFalseに見えるいくつかのデフォルト値を変更しない限り、ASCIIのようです。私はlib/libs/python27にフォルダをincludeして、setdefaultencodingを見つけることができるかどうかを調べようとしました...しかし、Twistedとsite.pyのunittestsの中では、何も見つかりませんでした。 –

0

私は原因を見つけました。私の場合、カスタムサイトを持っていたのはEvenniaでした。私が理解することができない理由から、Pythonは私のソースフォルダ内でこのファイルを探していました。私は、ディレクトリを完全に削除し、問題は修正されました。

関連する問題