2013-06-26 2 views
6

У меня есть питон код, который генерирует следующее сообщение об ошибке:Python рамка ок

objc[36554]: Class TKApplication is implemented in both /Library/Frameworks/Tk.framework/Versions/8.5/Tk and /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined. 

objc[36554]: Class TKMenu is implemented in both /Library/Frameworks/Tk.framework/Versions/8.5/Tk and /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined. 

objc[36554]: Class TKContentView is implemented in both /Library/Frameworks/Tk.framework/Versions/8.5/Tk and /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined. 

objc[36554]: Class TKWindow is implemented in both /Library/Frameworks/Tk.framework/Versions/8.5/Tk and /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined. 

Некоторые из моих библиотек расширения Ок связыванния /System/Library/Frameworks вместо/Library/Frameworks, когда они являются существом compiled, я знаю. Инструмент install_name_tool может перенастроить двоичный код на корректную структуру , но что именно мне нужно ввести в Terminal, чтобы исправить эту проблему?

ответ

1

Я не совсем понимаю, как переписывать библиотеки, но я нашел это сообщение в блоге. Это касается той же проблемы. В этом случае все было вызвано взаимодействием ActiveTcl с уже установленной Системной Framework.

Он просто удалил версию, отличную от системы. Это решительное решение, но это может сработать.

cd /Library/Frameworks 
rm -r Tk.framework 
rm -r Tcl.framework 

Вы также можете перенести Frameworks где-то в другом месте для целей тестирования, и если вы сломаете что-то, восстановите их позже.

http://michaelwelburn.com/2013/06/07/python-error-conflicting-tk-libraries-and-activetcl/

0

Я не думаю, что просто удаление рамок является лучшим способом справиться с этой проблемой. Если на самом деле инфраструктура связана с установкой ActiveTcl, другие файлы и ссылки, вероятно, должны быть очищены. ActiveState предоставляет сценарий uninstall, чтобы очистить все; где его найти и как его использовать, указывается в ActiveTcl User Guide. Обратите внимание, что расположение сценария зависит от версии ОС X.

Если вы уже удалили фреймворки и сценарий удаления с ними, вы можете посмотреть в/usr/local/bin для любых исполняемых файлов (или устаревших ссылок на исполняемые файлы), которые размещает ActiveTcl (например, wish, tclsh и tkcon). Чтобы найти что-нибудь там, которое ссылается на удаленные фреймворки, вы можете использовать что-то вроде ls -l | grep Tcl или ls -l | grep Tk (но убедитесь, что любые ссылки, которые вы обнаружите и собираетесь удалить, относятся к местам сторонних/библиотек, а не к местам/System/Library) ,