惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
I
InfoQ
Engineering at Meta
Engineering at Meta
Jina AI
Jina AI
Recent Announcements
Recent Announcements
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
Docker
Microsoft Security Blog
Microsoft Security Blog
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
GbyAI
GbyAI
博客园 - Franky
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog RSS Feed
WordPress大学
WordPress大学
MyScale Blog
MyScale Blog
月光博客
月光博客
罗磊的独立博客

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
解决 macOS 中 Python 调用 Turtle 模块的版本冲突问题 - 少数派
2023-10-12 · via 少数派

在 macOS 上使用 Python 的 turtle 模块时,可能会遇到一个常见的错误: "RuntimeError: tk.h version (8.5) doesn't match libtk.a version (8.6)"。本文将介绍如何解决这个问题。

import turtle

def draw_square():
    for _ in range(4):
        turtle.forward(100)  # 前进 100 单位
        turtle.right(90)     # 右转 90 度

def main():
    turtle.speed(1)  # 设置绘图速度为 1 (速度范围是 0 (最快) 到 10 (最慢))
    draw_square()    # 调用函数来绘制正方形
    turtle.done()    # 保持窗口打开,以便你可以看到结果

if __name__ == "__main__":
    main()

问题描述

当尝试运行使用 turtle 模块的 Python 脚本时,可能会遇到以下错误:

RuntimeError: tk.h version (8.5) doesn't match libtk.a version (8.6)

这个错误是由于 Python 解释器与 Tk 库之间的版本不匹配导致的。

环境准备

确保你已经安装了 Homebrew,它是一个在 macOS 上安装和管理软件包的工具。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

解决方案

安装 Homebrew 版本的 tcl-tk

使用 Homebrew 安装最新版本的 tcl-tk:

brew install tcl-tk

设置环境变量

在你的 shell 配置文件中设置以下环境变量。这些环境变量将指导 Python 解释器在哪里找到正确版本的 Tk 库。

对于 Fish 用户

如果你使用的是 Fish shell,将以下内容添加到 ~/.config/fish/config.fish 文件中:

set -l tk_prefix (brew --prefix tcl-tk)
set -x LDFLAGS "-L$tk_prefix/lib"
set -x CPPFLAGS "-I$tk_prefix/include"
set -x PKG_CONFIG_PATH "$tk_prefix/lib/pkgconfig"

然后,你需要通过执行以下命令使这些更改生效:

exec fish

对于 Zsh 用户

如果你使用的是 Zsh,你应该将以下内容添加到你的 ~/.zshrc 文件中:

export LDFLAGS="-L$(brew --prefix tcl-tk)/lib"
export CPPFLAGS="-I$(brew --prefix tcl-tk)/include"
export PKG_CONFIG_PATH="$(brew --prefix tcl-tk)/lib/pkgconfig"

然后,你需要通过执行以下命令使这些更改生效:

source ~/.zshrc

重新安装 Python

使用 pyenv

使用 pyenv 重新安装 Python:

pyenv install 3.x.x -f

其中,3.x.x 是你想要安装的 Python 版本。

使用 Homebrew

brew reinstall python

现在,再次运行你的 Python 脚本,应该不会再看到之前的错误了。

Python 使用 Turtle 模块绘制一个简单正方形的示例