运行bootstrap时“LookupError:未知编码:ascii”

时间:2012-11-19 02:52:37

标签: python macos encoding buildout

我正在使用zc.buildout,当我尝试运行bootstrap时(第一次在新计算机上运行),我收到以下错误:

>> python2.7 bootstrap.py

Traceback (most recent call last):
  File "bootstrap.py", line 158, in <module>
    import pkg_resources
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/../../Extras/lib/python/pkg_resources.py", line 698, in <module>
    class Environment(object):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/../../Extras/lib/python/pkg_resources.py", line 701, in Environment
    def __init__(self, search_path=None, platform=get_supported_platform(), python=PY_MAJOR):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/../../Extras/lib/python/pkg_resources.py", line 99, in get_supported_platform
    plat = 'macosx-%s-%s' % ('.'.join(_macosx_vers()[:2]), m.group(3))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/../../Extras/lib/python/pkg_resources.py", line 209, in _macosx_vers
    _cache.append(mac_ver()[0].split('.'))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/platform.py", line 803, in mac_ver
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/platform.py", line 780, in _mac_ver_xml
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 78, in readPlist
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 406, in parse
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 418, in handleEndElement
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 452, in end_key
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 436, in getData
LookupError: unknown encoding: ascii

有没有人见过这个或知道如何修复它?它似乎与获取当前版本的操作系统有关。我的操作系统是Mac 10.8.2。

谢谢!

4 个答案:

答案 0 :(得分:2)

检查/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7是否包含未填写的模块(* .py)。它们默认缺失,这就是问题所在。

答案 1 :(得分:2)

正如Vitaly回答的那样,问题确实是/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/中缺少原始.py文件(干净安装中只有.pyc文件)。具体来说,这些文件必须存在才能使bootstrap.py成功:

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/__init__.py
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py

您可以从virtualenv或其他计算机上复制它们。

答案 2 :(得分:2)

安装Xcode命令行工具为我解决了这个问题,虽然我无法解释原因。您可以在

下从Xcode安装这些
Preferences -> Downloads

或来自Apple Developers download page

答案 3 :(得分:1)

这似乎只是Mountain Lion的问题,并且只有在你的python上安装了新的(或报告似乎表明)。

解决方法是使用-S开关运行python:

python2.7 -S bootstrap.py

或创建virtualenv,然后使用virtualenv python运行bootstrap.py脚本。