UnicodeEncodeError:“mbcs”编解码器无法对位置0中的字符进行编码--1:运行PyInstaller编译的scrip时字符无效

2024-05-23 15:21:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚完成一个程序,我一直在工作,并一直想编译成一个单一的.exe文件分发。我决定使用pyinstaller 3,因为它以前为我工作,但在成功编译我的文件时,我得到以下消息运行程序。

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)

不太清楚在这里该做什么,所以非常感谢您的帮助:)


Tags: andinimporttkinterlineloadimportlibfind
2条回答

我认为另一个重要的方法是将pd.read_csvopen函数结合起来。例如,如果我有一个名为Ürümqi Diwopu International Airport.csv的csv文件,我可以使用以下代码:

import pandas as pd

dataframe = pd.read_csv(open(os.path.join(datapath, "Ürümqi Diwopu International Airport.csv"), 'r', encoding='utf-8'), index_col=0)

~

我收到了同样的错误信息。我通过将包含要打开的文件路径的字符串中的“\”替换为“\”修复了此问题。

相关问题 更多 >