所以我被难住了。如何让python 3.7.x与asdf一起使用tkinter?
我做了以下工作:
1) asdf local python 3.7.4
2) brew install tcl-tk
3) brew link tcl-tk --force
4) python -m venv --system-site-packages nltk
我有一些代码,比如:
import nltk
from nltk.corpus import wordnet as wn
from tkinter import *
# Let's get the first sense of vehicle
vehicle = wn.synsets('vehicle')[0]
# Let's build a concept tree
t = nltk.Tree(vehicle.name(), children=[
nltk.Tree(vehicle.hyponyms()[3].name(), children=[]),
nltk.Tree(vehicle.hyponyms()[4].name(), children=[]),
nltk.Tree(vehicle.hyponyms()[5].name(), children=[]),
nltk.Tree(vehicle.hyponyms()[7].name(), children=[
nltk.Tree(vehicle.hyponyms()[7].hyponyms()[1].name(), children=[]),
nltk.Tree(vehicle.hyponyms()[7].hyponyms()[3].name(), children=[]),
nltk.Tree(vehicle.hyponyms()[7].hyponyms()[4].name(), children=[]),
nltk.Tree(vehicle.hyponyms()[7].hyponyms()[5].name(), children=[]), nltk.Tree(vehicle.hyponyms()[7].hyponyms()[6].name(), children=[]),
]),
])
t.draw()然后,我使用nltk库运行包含上述代码的python脚本,以绘制一棵概念树。我得到以下输出:
Traceback (most recent call last):
File "concept_tree.py", line 3, in <module>
from tkinter import *
File "/Users/alexander/.asdf/installs/python/3.7.4/lib/python3.7/tkinter/__init__.py", line 36, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'发布于 2020-01-22 22:17:51
asdf python在幕后使用pyenv,因此您可以使用所有相同的构建选项。
在pyenv中,您需要在install命令前加上以下内容,以便使用tkinter进行安装:
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'"这也可以放在asdf install python 3.7.4前面。
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'" asdf install python 3.7.4请注意,这需要在全新安装python时完成。如果您已经安装了python,那么在运行带有configure选项的命令之前,您需要先卸载& reshim。
https://stackoverflow.com/questions/59003269
复制相似问题