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 '。
あなたは美しい言葉を言っています。私のコードは絶対にクリーンな仮想Windows 7上で動作することを理解していましたが、通常のWindows Vistaでは動作しません。 – ghostmansd
私はあなたのコメントを理解していません。あなたはこの質問にさらに助けを必要とするのですか、それとも私はそれに適切に答えましたか? – inspectorG4dget
それは問題を解決しません。どうしたらいいですか? Windowsのすべてのバージョンでアプリケーションをフリーズしますか?私はあなたが正しいことを私が見たとしか言いません。しかし、それは解決することができますか?はいの場合、どうですか?すべてのバージョンのWindowsでバイナリを再フリーズしますか? – ghostmansd