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

时间:2016-03-01 22:54:45

标签: python windows python-3.x pip

尝试在我的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文件夹中创建临时数据。如您所见,ü未正确解码(ü为字节0x81)。它始终是一个产生错误的德语变音符号(主要是ü,因为它是我的用户文件夹名称的一部分)。

我用谷歌搜索了最近2个小时,发现很多人都遇到了同样的问题,但大多数人都在打开github门票或讨论Ubuntu / Fedora / OSX等问题。我读过几次,标准Windows下的编码是cp-1252导致问题。我能以某种方式使用我的控制台强制窗口使用utf-8进行此会话,然后运行pip吗?

请不要建议我重命名我的用户文件夹。在Windows 10下不容易做到,我不想因为python而重新安装Windows。

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

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作,看看它是否有效。用你的实际路径替换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()