Фон
_scproxy
- это специфичный для Mac помощник urllib, взаимодействующий со специфическими для ОС библиотеками для выполнения HTTP-запросов.Похоже, что отсутствует в моей системе (10.6.7).Предварительно, я думаю, что это похоже на проблему с системной сборкой Python (я не могу найти ничего похожего на /System/Libraries
).
Решение Hack-o-rama
Возможно (вроде) установить недостающий модуль.Но сначала несколько советов:
Вы не должны TM слишком сильно портить вашу системную установку Python.Сделайте себе одолжение, научившись использовать virtualenv и применять потенциально опасные операции к новым, свежим virtualenv.Таким образом, ваша система не будет зависеть от установки проблемных пакетов.
В любом случае: стандартный Python для Snow Leopard - 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
YouТеперь вы можете скопировать ваш _scproxy.so
в /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.