2015-10-16 705 views
1

我剛剛完成一個節目,我一直在努力,並一直想編譯無效字符分發到單個.exe文件。我決定使用pyinstaller 3,因爲它已經爲我工作,但是在成功編譯我的文件之後,我在運行該程序時收到以下消息。UnicodeEncodeError:「MBCS」編解碼器不能編碼位置0--1個字符:在運行PyInstaller編譯腳本

C:\Users\Luke\Documents\program\dist>viewbot.exe 
_ctypes 
C:\Users\Luke\AppData\Local\Temp\_MEI59042\_ctypes.pyd 
_tkinter 
C:\Users\Luke\AppData\Local\Temp\_MEI59042\_tkinter.pyd 
Traceback (most recent call last): 
    File "<string>", line 7, in <module> 
    File "<frozen importlib._bootstrap>", line 1565, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked 
    File "C:\Users\Luke\Documents\program\PyInstaller\loader\pyi_importers.py", line 302, in load_module 
    File "C:\Python33\lib\tkinter\__init__.py", line 40, in <module> 
    import _tkinter # If this fails your Python may not be configured for Tk 
    File "<frozen importlib._bootstrap>", line 1565, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked 
    File "C:\Users\Luke\Documents\program\PyInstaller\loader\pyi_importers.py", line 474, in load_module 
UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: invalid character 

如果有幫助,這是我的計劃的一小部分代碼示例:

import os 
import subprocess 
from subprocess import call 
import time 
import tkinter 
from tkinter import filedialog 
call("color a", shell=True) 
root = tkinter.Tk() 
root.withdraw() 
print ("Please locate your firefox browser)") 
path = filedialog.askopenfilename(parent=root,title="Please locate your firefox browser") 
path = path + " {0}" 
FNULL = open(os.devnull, 'w') 
viewed = 0 
url = "http://google.com" 
refresh = 15 
views = 5 
call("cls", shell=True) 
for i in range(views): 
    proc = subprocess.Popen(path.format(url)) 
    time.sleep(refresh) 
    viewed = viewed + 1 
    print ("Viewed", viewed, "time") 
    proc.terminate() 
    call("cls", shell=True) 
print ("Viewing finished in", refresh * views, "seconds") 
time.sleep(5) 

不太清楚在這兒做任何幫助,將不勝感激:)

+1

你看到的錯誤,如果你不PyInstaller運行腳本? [創建一個顯示你的問題的最小代碼示例](http://stackoverflow.com/help/mcve),例如,如果整個腳本只是'import tkinter';它工作嗎?不相關:它是'mbcs',而不是'mbca'。 – jfs

+0

我的猜測是你在文件開始時有一個BOM。 –

+0

請勿將文字作爲圖像發佈。請複製粘貼它。 –

回答

0

我相同的錯誤信息。我通過在包含要導入的文件的路徑的字符串中使用\\(而不是\)來修復它。

+0

嗨,謝謝你的回覆!包含要導入的文件路徑的字符串是什麼意思? – Luke25361

+0

我有和你一樣的錯誤,但是在不使用pyinstaller的情況下使用不同的用例。我正試圖將一個CSV文件導入熊貓。最初,我認爲問題出在csv文件中,但最終我發現它在文件的路徑中。使用\\修復它。不知道它如何適用於你的情況。 – user474491

+0

好吧,我會研究這個,謝謝你的幫助:) – Luke25361

相關問題