2017-11-06 8 views
0

Arbeiten auf Ubuntu 16.04, Python 2.7.12 habe ich diesen Code (codec.py):PyInstaller Codecs gibt

#!usr/bin/env python 
# -*- coding: utf-8 -*- 

import codecs 

text = u'pi: \u03c0' 
print text 

Start-Programm mit: Python codec.py funktionieren und die Anzeige:

pi: π 

nach der Kompilierung dieser Code mit pyinstaller 3.3 ich versuche Programm mit ./codec auszuführen, aber diesen Fehler erhalten:

Traceback (most recent call last): 
     File "codec.py", line 7, in <module> 
    UnicodeEncodeError: 'ascii' codec can't encode character u'\u03c0' in position 4: ordinal not in range(128) 
    [6816] Failed to execute script codec 

ich habe keine solu für dieses Problem. Hast du ?

Lösung wurde Linie ändern 7:

Druck text.encode ("utf-8")

Nachdem er mit pyinstaller, Programm funktionieren, ohne Fehler kompilieren.

Antwort

0

Haben Sie versucht, IDLE 3 statt 2.7 zu verwenden? Ich finde, dass viele Probleme von der Verwendung der falschen Python-Versionen aufgrund von Bibliotheksinkompatibilität herrühren.

Werfen Sie auch einen Blick auf: Python Unicode Encode Error

Vielleicht Ihre Syntax ist falsch?

+0

Programm funktioniert gut, wenn mit Python codec.py gestartet wird. Problem ist mit dem kompilierten Programm. – popad

+0

oh okay, versuche, die Kodierung auf einen Standardwert zu setzen. import sys neu laden (sys) sys.setdefaultencoding ('utf-8') – Harvey

+0

Python 2.7.10 (Standard, 23. Mai 2015, 09:40:32) [MSC v.1500 32 Bit (Intel)] auf win32 Geben Sie "copyright", "credits" oder "license()" ein, um weitere Informationen zu erhalten. >>> import sys >>> sys.setdefaultencoding ('utf-8') Traceback (jüngste Aufforderung zuletzt): File "" Linie 1 in sys.setdefaultencoding ('utf-8 ') AttributeError:' Modul 'Objekt hat kein Attribut' setdefaultencoding ' >>> – popad