背景
_scproxy
是 Mac 特定的 urllib 帮助程序,与特定于操作系统的库交互以执行 HTTP 请求。我的系统上似乎也缺少它(10.6.7)。初步,我认为这看起来像是系统Python构建的问题(我在下面找不到任何类似的东西)/System/Libraries
).
Hack-o-rama 解决方案
(某种程度上)可以安装缺少的模块。但首先有一点建议:
You Shouldn'tTM mess too much with your system Python installation. Do yourself a favour by learning to use virtualenv http://pypi.python.org/pypi/virtualenv/, and apply potentially dangerous operations on new, fresh virtualenv's. That way you're system wont be affected by installation of problematic packages.
无论如何:Snow Leopard 上的原生 Python 是 2.6.1。我用最新的 2.6、2.6.6 进行了实验,一种更安全的方法是下载它。然而,我的经验是,不同的点发布可以很好地协同工作。
无论如何,我在我的中下载了2.6.6~/src
像这样的目录:
~/src/ext/python$ wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz
~/src/ext/python$ tar zxf Python-2.6.6.tgz
~/src/ext/python$ cd Python-2.6.6
~/src/ext/python$ ./configure
疯狂地控制台垃圾邮件
~/src/ext/python$ make sharedmods
希望没有错误,更多控制台垃圾邮件
找到新建的_scproxy.so
:
~/src/ext/python/Python-2.6.6$ find . -name '_scproxy.so'
./build/lib.macosx-10.4-x86_64-2.6/_scproxy.so # <- exact path may vary
您现在可以复制您的_scproxy.so
to /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynlo
ad
(然后记住,你的 Python 系统中有一个自制的有点陌生的模块)。或者,更好的是,将其添加到lib/python2.6/
virtualenv 的子目录。完成这些操作后,我可以按照回溯中指示的方式导入 _scproxy:
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from _scproxy import _get_proxy_settings, _get_proxies
>>>
这强烈表明通过需要的方法安装软件包urllib
请求利用_scproxy
将工作。不过,从那时起,您就必须自己继续,因为我不想测试安装 MySQL 本身。