Si vous recherchez ce symptôme, vous trouverez des articles dans Qiita, mais pour une raison quelconque, cela n'a pas fonctionné et j'ai fait beaucoup d'essais et d'erreurs, alors j'ai pris note.
TL;DR
tcl-tk
, entrez-le avec brew install tcl-tk
PYTHON_CONFIGURE_OPTS
et que cela ne s'améliore pas, vérifiez la version de tcl-tk pour voir si la version correcte est écrite.--enable-shared
à la fin.Mac Book Pro macOS Catalina 10.15.7
anyenv anyenv 1.1.2-1-g67d402f pyenv 1.2.21
Tkinter, que je vois dans d'autres articles, ne fonctionne pas. Je n'ai pas écrit le journal du terminal parce que je pensais qu'il pouvait être résolu rapidement, mais c'était presque le même que je vois dans d'autres articles.
Installez tcl-tk
avec Homebrew
brew install tcl-tk
Donc, j'ai ajouté diverses choses aux variables d'environnement.
.zshrc
export PATH="/usr/local/opt/tcl-tk/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/tcl-tk/lib"
export CPPFLAGS="-I/usr/local/opt/tcl-tk/include"
export PKG_CONFIG_PATH="/usr/local/opt/tcl-tk/lib/pkgconfig"
De plus, ajoutez l'option PYTHON_CONFIGURE_OPTS
lors de la construction de python en .zshrc,
À ce stade, la version de tcl-tk doit correspondre à la version de celle que vous avez mise dans Homebrew, alors vérifiez-la.
Il semble que vous puissiez voir la version du paquet que vous avez mis dans Homebrew avec brew info
(j'ai appris aujourd'hui)
brew info tcl-tk
tcl-tk: stable 8.6.10 (bottled) [keg-only]
Tool Command Language
https://www.tcl-lang.org
/usr/local/Cellar/tcl-tk/8.6.10 (3,036 files, 51MB)
Poured from bottle on 2020-11-09 at 10:51:55
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/tcl-tk.rb
License: TCL
==> Dependencies
Required: [email protected] ✔
==> Caveats
tcl-tk is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have tcl-tk first in your PATH run:
echo 'export PATH="/usr/local/opt/tcl-tk/bin:$PATH"' >> ~/.zshrc
For compilers to find tcl-tk you may need to set:
export LDFLAGS="-L/usr/local/opt/tcl-tk/lib"
export CPPFLAGS="-I/usr/local/opt/tcl-tk/include"
For pkg-config to find tcl-tk you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/tcl-tk/lib/pkgconfig"
==> Analytics
install: 8,020 (30 days), 24,799 (90 days), 101,382 (365 days)
install-on-request: 4,416 (30 days), 13,662 (90 days), 53,123 (365 days)
build-error: 0 (30 days)
Cela semble être la version 8.6.10, donc dans ce cas, il semble que vous deviez spécifier tcl8.6
et tk8.6
.
(J'ai regardé)
ls /usr/local/opt/tcl-tk/lib
Tk.icns libtk8.6.dylib tclConfig.sh tdbcmysql1.1.1
Tk.tiff libtkstub8.6.a tcllib1.20 tdbcodbc1.1.1
itcl4.2.0 pkgconfig tcllibc tdbcpostgres1.1.1
itk4.1.0 sqlite3.30.1.2 tclooConfig.sh thread2.8.5
libtcl8.6.dylib tcl8 tcltls1.7.20 tk8.6
libtclstub8.6.a tcl8.6 tdbc1.1.1 tkConfig.sh
Je vais donc l'ajouter à .zshrc
.
.zshrc
export PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I/usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'"
Lisons à nouveau les paramètres. Vous pouvez utiliser . ~ / .Zshrc
, source ~ / .zshrc
ou rouvrir le terminal
comme vous le souhaitez.
Une fois cela fait, réinstallez python. ... Eh bien, depuis que je l'ai laissé pendant longtemps, la version incluse était la 3.7.4, qui est ancienne, donc je pense à réinstaller la 3.8.5 ici. (Si ça se passe bien, j'ai envie de le remettre)
pyenv install 3.8.5
python-build: use [email protected] from homebrew
python-build: use readline from homebrew
Downloading Python-3.8.5.tar.xz...
-> https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz
Installing Python-3.8.5...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.8.5
Puis changez de version globale
pyenv global 3.8.5
python -V
Python 3.8.5
Eh bien.
python -m tkinter -c "tkinter._test()"
(Omis)
RuntimeError: tk.h version (8.6) doesn't match libtk.a version (8.5)
Quelle?
Tout le monde dit que cela a fonctionné.
Une recherche supplémentaire sur Google a révélé que lors de la configuration de PYTHON_CONFIGURE_OPTS
, l'ajout de --enable-shared
fonctionnait également opinion. / questions / 60469202 / enable-to-install-tkinter-with-pyenv-pythons-on-macos # comment112082121_61879759) Alors essayons-le.
- export PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I/usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'"
+ export PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I/usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6' --enable-shared"
Alors, rechargez à nouveau .zshrc
et réinstallez python
pyenv uninstall 3.8.5
pyenv: remove /Users/*****/.anyenv/envs/pyenv/versions/3.8.5? [y|N]y
pyenv: 3.8.5 uninstalled
pyenv install 3.8.5
python-build: use [email protected] from homebrew
python-build: use readline from homebrew
Downloading Python-3.8.5.tar.xz...
-> https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz
Installing Python-3.8.5...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.8.5
D'une manière ou d'une autre, il est préférable de cliquer sur «inactif» et de voir qu'il n'y a pas d'erreur, alors je vais essayer cela aussi.
idle
Ça a l'air bien.
Puis encore.
python -m tkinter -c "tkinter._test()"
C'est finalement un succès. Yay!
Si vous ne pouvez pas utiliser tkinter avec la méthode bien connue, vous pouvez ajouter --enable-shared
à vos options de construction.
Recommended Posts