当前位置: 首页 > 知识库问答 >
问题:

tcl-tk(tkinter)未通过MacOS Mojave上的Homebrew pyenv安装

暴乐邦
2023-03-14

如果我在自制的MacOS Mojave上这样做:

$ brew install tcl-tk
$ brew install pyenv
$ pyenv install 3.7.4
$ pyenv global 3.7.4
$ python -m tkinter -c 'tkinter._test()'    

我得到:

Traceback (most recent call last):
  File "/Users/craign/.pyenv/versions/3.7.4/lib/python3.7/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/Users/craign/.pyenv/versions/3.7.4/lib/python3.7/runpy.py", line 142, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/Users/craign/.pyenv/versions/3.7.4/lib/python3.7/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/Users/craign/.pyenv/versions/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'

我已经找了好几天了,也尝试了各种解决方案,比如这里,但是至今没有运气。知道我为什么会出现这个错误以及如何修复它吗?

提前感谢!

共有3个答案

喻珂
2023-03-14
匿名用户

当我试图通过pyenv安装< code>tkinter时,我遇到了同样的问题。虽然@Dribbler answer有助于发现anaconda更兼容,但当我按照@Simba的说明操作时,我仍然得到一个错误,显示< code >没有conda命令。最后,我能够使用下面的代码来修复它,以防有人有同样的问题,并且仍然希望坚持使用< code>pyenv。

修复

>

  • 我按照@nickolay说明安装tkinter并以正确的方式设置路径。

    然后,我使用pyenv install anaconda3-2020.07命令安装了anaconda3-2020.07。

    因为我在全局使用pyenv python 3.8.6:我导航到我想使用tkinter的文件夹,并在本地使用anaconda3-2020.07,通过使用命令pyenv local anaconda3-2020.07在该特定文件夹中使用此版本的pyenv。它运行没有错误!

    注意:我在中使用以下脚本。bash_profile在cd所需目录时自动触发虚拟环境

    # manage python version using pyenv
    if command -v pyenv 1>/dev/null 2>&1; then
      eval "$(pyenv init -)"
    fi
    
    # add pyenv virtualenv
    eval "$(pyenv virtualenv-init -)"
    

  • 盖夕
    2023-03-14

    这是使IDLE和tkinter工作的分步指南:

    1. 用Homebrew安装tcl-tk。在shell运行brew安装tcl-tk
    2. 在shell中运行echo'export PATH=“/usr/local/opt/tcl-tk/bin:$PATH”'

    试验

    1. 在shell中运行pyenv-global

    就是这样!

    我的环境:

    检查这是否在执行上述步骤时出错:

    1. macOS Catalina
    2. zsh(包含在macOS Catalina中)=上面的"shell"
    3. Homebrew(安装说明来自Homebrew官网链接)
    4. pyenv(根据GitHub的pyenv官方自述文件更新Homebrew和PATH安装)
    5. Python3.8. x-3.9. x(与pyenv install一起安装

    狄奕
    2023-03-14

    我从来没有让它工作过。我花了很多时间在这个页面以及许多其他网站上,并尝试了一切。似乎Homebrew Python和Tcl-Tk现在不是开箱即用的同一个版本,这是一个常见的问题。我最终做的是按照@Simba的出色说明并排安装pyenv和anaconda,使用Anaconda,我的Tcl-Tk命令运行良好。在这里发布,这样其他人就不会掉进这个兔子洞,或者如果他们掉进了兔子洞并找到了解决方案,那就太好了。

     类似资料:
    • 问题内容: 如何从窗口标题栏中删除tkinter图标 问题答案: 在Windows上 步骤1: 使用图标编辑器或类似rw-designer的网站创建透明图标。另存为。 第二步: 在Unix上 类似,但使用图标。

    • 问题内容: 我花了一些时间来寻找可行的解决方案,以在OSX平台上使用Python Tkinter进行拖放行为,发现的最可能的解决方案是TkDnD库。 http://sourceforge.net/projects/tkdnd/files/ 但是,我找不到有关安装的任何手册或指南,并且在OSX上基本上没有示例。谁能和我分享他们的经验? 此外,使用Tkinter作为GUI解决方案不是一个好的选择吗?我

    • 我已经在Mac上通过自制程序安装了Python。 之后,我将Python版本检查为2.7。11,然后我试着表演 我得到以下错误消息:

    • 问题内容: 我环顾了一下,但找不到我的错误的答案。这是代码: 这是错误: 我是tkinter的新手,这个错误让我感到难过。非常感谢您的帮助,谢谢! 问题答案: 您的init方法应调用的init。

    • 问题内容: 我知道这是一个愚蠢的问题,但我才刚刚开始学习python,但我对python并不了解。我的问题是之间有什么区别 和 为什么我不能写 谁能抽出几分钟来启发我? 问题答案: 将Tkinter中的每个公开对象导入到您当前的名称空间中。 导入名称空间中的“名称空间” Tkinter并 执行相同的操作,但是在本地将其“重命名”为“ tk”以节省您的输入 假设我们有一个模块foo,其中包含类A,B

    • TCL移动开发面试 项目 支付项目中对接支付的大致流程 怎么保证支付的安全性 为啥没安卓经验要面试安卓呢?因为项目都是后台的 Java基础 字符串拼接的方式 如何理解线程安全问题 创建线程的方式 讲讲java中的锁 synchronized锁的实现原理,在项目当中哪里用到了加锁 synchronized和volitail的区别 volitail会被编译器优化嘛,synchronized会被编译器优