2012-02-09 13 views
0

Windows用のアプリケーションをフリーズしようとしています。 PyQt4を使用し、Python 2.7でビルドされました。すべてがコンパイルされ、うまく動作しますが、私のPCだけです。 は、Pythonがインストールされていない他のPC上で、エラーがあります:ここではpy2exe:UnicodeDecodeError(バイト0xd1をデコードできません)

File "quirinus.py", line 4, in <module> 
File "zipextimporter.pyc", line 82, in load_module 
File "bin\core.pyc", line 17, in <module> 
File "bin\xstring.pyc", line 19, in str2unicode 
File "encodings\utf_8.pyc", line 16, in decode 
UnicodeDecodeError: 'utf8' codec can't decode byte 0xd1 in position 3: invalid continuation byte 

は私のsetup.pyのコードです:ここで

from distutils.core import setup 
import py2exe, sys, os 
from glob import glob 
data_files = [('Microsoft.VC90.CRT', glob(r'..\Microsoft.VC90.CRT\*.*'))] 
sys.path.append(r'..\Microsoft.VC90.CRT') 
sys.argv.append('py2exe') 

py2exe_options = dict(
    includes=['sip', 
      'encodings', 
      'encodings.ascii', 
      'encodings.utf_8', 
      'encodings.cp866'], 
    excludes=['_ssl', 'pyreadline', 'difflib', 'doctest', 
    'tarfile', 'bz2', 'zipfile', 'optparse', 'pickle', 
    'pywin', 'pywin.debugger', 'pywin.debugger.dbgcon', 
    'pywin.dialogs', 'pywin.dialogs.list', 'calendar', 
    'Tkconstants', 'Tkinter', 'tcl', '_gtkagg', '_tkagg', 
    'bsddb', 'curses', 'email', 'Tkconstants', 'Tkinter'], 
    dll_excludes=['msvcp90.dll', 'msvcr90.dll', 'msvcm90.dll', 
    'libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 
    'tcl84.dll', 'tk84.dll'], 
    compressed=True 
) 

setup(
    name='Quirinus', 
    author='Dmitriy Selyutin', 
    author_email='[email protected]', 
    description='Quirinus: Dictionary', 
    version='0.1', 
    windows = \ 
    [ 
    { 
     'script': 'quirinus.py', 
     'icon_resources': [(0, 'icons/icon.ico')] 
    } 
    ], 
    options={'py2exe': py2exe_options}, 
    zipfile = None, 
    data_files = data_files 
) 

は凍結を実行するコマンドです。 python.exe .\setup.py py2exe -b 1

私のプロジェクト内のすべてのソースファイルが最初に「エンコーディング」の行を持っています

# coding: UTF-8 

私はUnicodeをうまく動作させるためにすべてをやったと思います。それはPythonを持つすべてのコンピュータで動作します。 :-)しかし、コンピュータにPythonがない場合、アプリケーションは失敗します。誰もこの問題を起こしましたか?

P.S. PyInstaller(python.exe .\pyinstaller.py -F -w)を使用してフリーズしようとしましたが、フリーズしたアプリケーションは実行されません。そして、はい、ソースのすべての文字列は、次の形式を持っています:u'string '。

答えて

0

pythonが他のPCにインストールされているかどうかは問題ではないと思います。私は、あなたの仕様と比較して、他のPCにプロセッサ仕様が何であるかをもう一度見てみるべきだと思います。

フリーズは非常にプロセッサ固有であるため、クロスプロセッサ互換性に問題がある可能性があります。

+0

あなたは美しい言葉を言っています。私のコードは絶対にクリーンな仮想Windows 7上で動作することを理解していましたが、通常のWindows Vistaでは動作しません。 – ghostmansd

+0

私はあなたのコメントを理解していません。あなたはこの質問にさらに助けを必要とするのですか、それとも私はそれに適切に答えましたか? – inspectorG4dget

+0

それは問題を解決しません。どうしたらいいですか? Windowsのすべてのバージョンでアプリケーションをフリーズしますか?私はあなたが正しいことを私が見たとしか言いません。しかし、それは解決することができますか?はいの場合、どうですか?すべてのバージョンのWindowsでバイナリを再フリーズしますか? – ghostmansd

関連する問題