AVISO: A versão do Tcl / Tk (8.5.9) em uso pode ser instável

6

Estou executando o macOS Sierra 10.12.2 e estou tentando fazer com que o IDLE do Python funcione corretamente com o Tcl / Tk. Esta é a mensagem de erro que recebo quando abro o IDLE:

Python 2.7.13 (default, Dec 18 2016, 07:03:39) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>> WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.
Visit http://www.python.org/download/mac/tcltk/ for current information.

Visitando o link na mensagem de erro, li a documentação e instalei o Tcl / Tk versão 8.5.18.0 a partir desta fonte. Talvez seja importante notar que estou executando uma brewinstalação do Python 2.7.13. Depois de instalar o DMG para 8.5.18.0, o terminal bash e o Python não reconhecem a atualização Tcl / Tk (observe que ele reconhece Tcl / Tk (8.5.9) em vez de 8.5.18.0. Como obter IDLE e o instalação python atualizada do homebrew para reconhecer o Tcl / Tk 8.5.18.0 atualizado? Em outras palavras, como posso resolver a mensagem de aviso?

Borealis
fonte
Desculpas se eu entendi mal a sua pergunta, mas, além do fato de você receber a AVISO: A versão do Tcl / Tk (8.5.9) em uso pode ser uma mensagem instável , você realmente teve algum problema ao usar o IDLE do Python para funcionar corretamente? Tcl / Tk 8.5.9?
Monomeeth
É de buggy - tive várias falhas inesperadas.
Borealis
Obrigado. Vejo que você está executando o Python 2.7.13. Existe uma razão para você executar essa versão em vez de, por exemplo, Python 3.6.0?
Monomeeth
É a versão mais recente do Python 2.7 instalada brew, preferida em relação ao Python 3. Também é a versão recomendada do Python para ser agradável com a versão ActiveTcl 8.5.18.0, de acordo com python.org/download/mac/tcltk .
Borealis

Respostas:

4

De acordo com esta página da Python Software Foundation :

Os instaladores do Python para Mac OS X baixados deste site são vinculados dinamicamente em tempo de execução às estruturas Tcl / Tk macOS. A versão principal do Tcl / Tk é determinada quando o instalador é criado e não pode ser substituído. Os instaladores do Mac OS X de 64 bits / 32 bits do Python para Python 3.6.x, 3.5.xe 2.7.x vinculam dinamicamente às estruturas Tcl / Tk 8.5. Os instaladores Python de 32 bits somente para Mac OS X vinculam dinamicamente às estruturas Tcl / Tk 8.4.

Nos dois casos, a vinculação dinâmica ocorre quando o tkinter (Python 3) ou o Tkinter (Python 2) é importado pela primeira vez (especificamente, o módulo de extensão interno _tkinter C). Por padrão, o vinculador dinâmico do macOS procura primeiro em / Library / Frameworks estruturas Tcl e Tk com a versão principal apropriada. Este é o local padrão para terceiros ou construído a partir de estruturas de origem, incluindo as versões do ActiveTcl. Se as estruturas da versão principal apropriada não forem encontradas, o vinculador dinâmico procurará a mesma versão em / System / Library / Frameworks, o local para as estruturas fornecidas pela Apple fornecidas com o macOS. (Observe que você normalmente não deve modificar ou excluir arquivos em / Sistema / Biblioteca.)

Fonte: procure o subtítulo Como Python escolhe qual biblioteca Tk usar em https://www.python.org/download/mac/tcltk/#activetcl-8-5-18-0

Por isso, tenho 99,9% de certeza de que agora você atualizou para o Tcl / Tk 8.5.18.0, o que você precisa fazer é reinstalar o Python 2.7.13.

A razão pela qual acredito que isso resolverá seu problema é que, ao ler as informações que citei, fica claro que a versão Tcl / Tk usada pelo Python é escolhida durante o processo de instalação e não pode ser alterada sem a instalação do Python novamente.

Monomeeth
fonte
2

Esta solução da Stack Overflow resolveu o problema:

brew tap homebrew/dupes
brew install tcl-tk
brew install python --with-tcl-tk
Borealis
fonte
Isso não é mais possível, pois a opção --with-tcl-tkdesapareceu.
Garini
1

Atualização de 2018

O sistema fornecido python / tcl-tk sempre mostrará esse erro.

Você PODIA baixar um tcl-tk atualizado e uma instalação python atualizada (é necessário reinstalar o python para vincular ao novo tcl-tk - instale o tcl / tk primeiro!).

Meu método PREFERRED está usando o Homebrew .

desinstalar a versão de desenvolvimento do tcl-tk

brew uninstall tcl-tk --devel

instalar tcl-tk

brew install tcl-tk

desinstalar python e python3 (a ligação tcl-tk acontece quando o python é instalado, portanto, precisamos reinstalar depois que o tcl-tk estiver instalado)

brew uninstall python
brew uninstall python3

reinstalar python e python 3

brew install python
brew install python3

teste

brew test python
brew test python3

test IDLE ("idle" aponta para python / tcl-tk instalado no sistema, não usaremos mais isso, mas podemos deixá-lo lá para evitar problemas futuros)

idle2
idle3
JBallin
fonte