Pip安装会在Windows上引发UnicodeDecodeError。 固定?

当试图在我的Windows 10机器上安装mysql-python时,出现以下错误:

File "<string>", line 1, in <module> File "C:\Users\LUCAFL~1\AppData\Local\Temp\pip-build-3u7aih0l\mysql-python\setup.py", line 21, in <module> setuptools.setup(**metadata) File "c:\program files (x86)\python35-32\lib\distutils\core.py", line 148, in setup dist.run_commands() ... File "c:\program files (x86)\python35-32\lib\subprocess.py", line 1055, in communicate stdout = self.stdout.read() File "c:\program files (x86)\python35-32\lib\encodings\cp1252.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 1716: character maps to <undefined> 

我尝试安装其他软件包,几乎每一个都收到相同的错误(一个例外是pymysql)。 所有这些软件包都很大,并且有依赖关系。 我猜大数据在我的用户目录APPDATA文件夹中创build临时数据。 正如你所看到的,这个ü没有正确解码(ü是字节0x81)。 这总是一个德语变音(产生错误,主要是因为它是我的用户文件夹名称的一部分)。

我search了过去2个小时,发现很多人有同样的问题,但他们大多是打开github门票或讨论Ubuntu / Fedora / OSX的问题等。有几次,我读,在Windows下的标准编码是造成这个问题的CP-1252。 我可以以某种方式强制使用我的控制台使用utf-8这个会话的窗口,然后运行与该点?

请不要推荐我重命名我的用户文件夹。 这是不容易在Windows 10下完成的,我不想仅仅因为python而重新安装windows。

我的设置:Windows 10,Python 3.5.1,点8.0.3

你可以尝试下面,看看是否有效。 用你的实际路径替换python的路径。
我无法模拟我的Windows笔记本电脑。

 import sys import subprocess reload(sys) # Reload may do the trick! sys.setdefaultencoding('UTF8') theproc =subprocess.call(['C:\\Python27\\Scripts\\pip.exe', 'install', 'mysql-python']) theproc.communicate()