title: UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: invalid character upon running a PyInstaller-compiled script
body: <p>I've just finished a program I've been working on and have been wanting to compile it to a single .exe file for distribution. I decided to use pyinstaller 3 as it has worked for me before however upon successfully compiling my file I get the following message upon running the program.</p>
  
  <pre><code>C:\Users\Luke\Documents\program\dist&gt;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 "&lt;string&gt;", line 7, in &lt;module&gt;
    File "&lt;frozen importlib._bootstrap&gt;", line 1565, in _find_and_load
    File "&lt;frozen importlib._bootstrap&gt;", 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 &lt;module&gt;
      import _tkinter # If this fails your Python may not be configured for Tk
    File "&lt;frozen importlib._bootstrap&gt;", line 1565, in _find_and_load
    File "&lt;frozen importlib._bootstrap&gt;", 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
  </code></pre>
  
  <p>If it helps, this is a minimal code example of my program: </p>
  
  <pre><code>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)
  </code></pre>
  
  <p>Not quite sure what to do here so any help would be much appreciated :)</p>