Я работаю в аналогичной ситуации.
, Если это не маленькая утилита, а проект крупного предприятия тогда, это:
a) слишком поздно для фиксации его
b) вне возможностей единственного человека делать попытку a)
c) может только быть зафиксирован полной перезаписью материала, который является вне рассмотрения
, Рефакторинг может во многих случаях быть только предпринят в частное время в персональном риске. Если Вы не получаете явный мандат делать это как часть Вас ежедневно задание тогда, Вы вероятны, даже не получают кредита на него. Может даже быть подвергнут критике за "бессмысленно напрасно тратящий время на чем-то, что в течение долгого времени уже отлично работало".
Только продолжают взламывать его способ, которым это было взломано прежде, получите свою зарплату и так далее. Когда Вы полностью расстроены, или система достигает точки того, чтобы быть non-hackable дальше, найдите другое задание.
РЕДАКТИРОВАНИЕ: Каждый раз, когда я пытаюсь обратиться к вопросу истинной архитектуры и выполнения вещей правильным путем, я обычно получаю LOL в своей поверхности непосредственно от ответственных менеджеров, которые говорят что-то как, "Меня не волнует хорошая архитектура" (предпринятый перевод из немецкого языка). Я лично принес один очень плохой компонент на грани non-hackability, в то время как, конечно, дававший усовершенствовал месяцы предупреждений заранее. Они тогда должны были отменить некоторые обещанные функции клиентам, потому что это не было выполнимо больше. Никто больше не касается его...
Хорошо, оказалось, что, изменив ответ mjv, я смог заставить его работать, набрав
export PYTHONPATH="/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/PyObjC/"
перед выполнением строки ./ project-tool.py
. Мне до сих пор кажется смешным, что мне пришлось это сделать, и если кто-нибудь поймет почему, я был бы рад узнать.
Это также заставило работать строку
>>> import objc
.
Одно из двух:
Python ищет модули в PythonPath
См. Этот вопрос SO для получения дополнительных сведений о том, как создается путь Python и т. Д.
Запустите python -v
для отслеживания операторов импорта, это также работает для интерактивного режима.
Это потому, что PyObjC присутствует: /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
Изменить: Я нашел, как заставить "import objc" работать, просто: export PYTHONPATH = "/ System / Library / Frameworks / Python.framework / Versions / 2.6 / Extras / lib / python /"
Он добавит все каталоги в путь python (sys.path)