2014-11-03 1 views
3

Я пытаюсь скомпилировать программу (python2.7), но независимо от того, что я делаю, я получаю эту ошибку:конфликта версий для пакета «Ок»: есть 8.5.2, нужно точно 8.5.15

C:/Python27/tcl/tk8.5/tk.tcl: version conflict for package "Tk": have 8.5.2, need exactly 8.5.15 
version conflict for package "Tk": have 8.5.2, need exactly 8.5.15 
while executing 
"package require -exact Tk 8.5.15" 
    (file "C:/Python27/tcl/tk8.5/tk.tcl" line 18) 
    invoked from within 
"source C:/Python27/tcl/tk8.5/tk.tcl" 
    ("uplevel" body line 1) 
    invoked from within 
"uplevel #0 [list source $file]" 

Возможно, это означает, что tk установлен неправильно.

Может кто-нибудь, пожалуйста, объясните мне, в чем проблема?

+0

Похоже, вам нужна другая версия Tk. Вы пытались удалить текущую версию и запустить 'pip install Tk == 8.5.15'? – IanAuld

+0

Прошу прощения за мое невежество, но как мне это сделать? Я никогда раньше не использовал Tcl (не совсем уверен, что это такое). Даже внутри моего кода я никогда не использую Tcl явно, возможно, одна из моих импортированных библиотек. – peech

+0

'pip uninstall tk', а затем запустить строку из моего предыдущего комментария – IanAuld

ответ

8

шаг 1: открытая C: \ python27 \ TCL \ tcl8.5 \ init.tcl

if {[info commands package] == ""} { 
    error "version mismatch: library\nscripts expect Tcl version 7.5b1 or later but the loaded version is\nonly [info patchlevel]" 
} 
package require -exact Tcl 8.5.15 

8.5.15 изменено на 8.5.2

шаг 2: открытая C: \ python27 \ TCL \ tk8.5 \ tk.tcl

package require Tcl 8.5 ;# Guard against [source] in an 8.4- interp before 
      ;# using 8.5 [package] features. 
# Insist on running with compatible version of Tcl 
package require Tcl 8.5.0 
# Verify that we have Tk binary and script components from the same release 
package require -exact Tk 8.5.15 

8.5.15 изменен на 8.5.2

+2

Кто-нибудь даст этому человеку куки! – displayname

+0

Блестящий. благодаря! –

0

Tk приходит (концептуально) из двух частей:

  1. динамический файл библиотеки, которая реализует мнения
  2. файл библиотеки сценариев (ы), который реализует контроллеры по умолчанию.

Они должны быть точно согласованы друг с другом (это единственный способ, которым они гарантированы, чтобы правильно работать). По умолчанию Tk DLL включает путь, где он может найти свои скрипты, но он может быть переопределен переменными окружения; этот механизм в основном предназначен для поддержки тестирования перед установкой, хотя иногда он используется скорее больше, чем на самом деле.

Вы, кажется, настроили так, что у вас есть одна версия DLL (8.5.2), а другая версия скриптов (8.5.15). Это может быть связано с тем, что вы связаны с неправильной версией библиотеки DLL или потому, что у вас есть переменная среды (TK_LIBRARY), которая указывает на неправильную установку. Что из сообщения об ошибке немного сложно сказать: все, что он действительно говорит, это несоответствие версии.

+0

Я видел эту проблему несколько раз с установками Python: я подозреваю, что они делают что-то не так, что они обычно уходят с ... –

Смежные вопросы