From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <427F8C80.7010000@altlinux.ru> Date: Mon, 09 May 2005 20:14:56 +0400 From: Alexey Rusakov User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20050202 Thunderbird/1.0 Mnenhy/0.7 X-Accept-Language: en-us, en MIME-Version: 1.0 To: ALT Linux Sisyphus discussion list Subject: [sisyphus] =?UTF-8?B?0JfQsNCy0LjRgdC40LzQvtGB0YLQuCDQv9GA0L7Qs9GA?= =?UTF-8?B?0LDQvNC8INC90LAgUHl0aG9u?= References: <427F76B5.000003.12455@pantene.yandex.ru> In-Reply-To: <427F76B5.000003.12455@pantene.yandex.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 May 2005 16:14:57 -0000 Archived-At: List-Archive: trash4 wrote: >Дело в том, что доска (board) python.c, стартующая все >питон-расширения проверяет наличие pygtk и pygnome, попросту >импортируя эти модули. Незнаю, где там собака порылась, я в сях >не силён, но проблема была именно здесь. Проверку эту мы просто >профанируем. Далее всё работает ОК. Так что всем рабоваться и >детей радовать (а я ещё и жену порадовал :-) ) > > Похоже, это тенденция, поэтому изложу свои мысли по поводу и хотел бы услышать мнение обчественности. Проблема касается пакетов, в которых происходит импорт модулей Python из кода на C/C++ (разнообразные привязки, но не только). Встречается плохая обработка отсутствующих пакетов при неудачном их импорте из C/C++. К сожалению, бывает так, что эти пакеты ещё и не прописаны в зависимостях (автоопределение зависимостей такие пакеты, естественно, пропускает). Результатом становится успешно установленная программа, которая дохнет (обычно сразу после запуска) с невразумительным сообщением об ошибке и/или коредампом. Самое смешное, что в некоторых случаях импортируемый модуль и не нужен, и программа замечательно работает при отключенной попытке импорта (конечно, до тех пор пока не будет попытки использовать что-нибудь из неустановленного модуля). Возможно, стоит анализировать попытки импорта тех или иных модулей не только из Python, но и из C/C++. Насколько я понимаю, это не очень сложно сделать, поскольку импорт из C/C++ делается вполне определённой функцией (Py_ImportModule), вызовы которой нужно отследить и получить из них имена импортируемых модулей. Побочным эффектом будут лишние зависимости, но наш buildreq всегда отличался щедростью :) -- Alexey "Ktirf" Rusakov