python - macos _tkinter TclError: 找不到包 Tix
问题描述
在Macos中,当我编译一个python程序时,它会出现:_tkinter TclError: can't find package Tix
如何重新爱它?
解决方案
这是我的问题,花了我一整天的时间,我只是想记录它或帮助别人。
下载软件
下载xQuartz: 下载xQuartz
下载 Tcl 8.5 和 Tk 8.5
(1) weblink goto:Tcl Tk下载链接
(2) 在网页底部,选择您想要的版本。
I choose the tcl8519-src.zip and the tk8519-src.zip
(3) 记住:需要下载相同的版本。
在 Tix 8.4 下,版本可能与 tcl/tk 不同。
网址为: Tix 下载
准备*
你可以得到:XQuartz-2.8.1.dmg,只需打开并使用默认选项安装它。
创建一个名为“src”的目录,建议不要更改“src”目录名称。
将所有三个 zip 文件移动到 src 目录。
双击,只需解压缩所有三个文件。
编译
编译tcl
[ 提示:不需要 make install ]
cd /Users/lee/tcltktix/src/tcl8.5.19/macosx/ ./configure --enable-threads --enable-symbols --enable-shared --enable-framework --enable-64bit make
编译 tx,并安装它
[重要] --with-tcl=**** 替换你的真实目录。
“dir--with-tcl”的最后一个字符,必须是“/”
cd /Users/lee/tcltktix/src/tk8.5.19/macosx/
./configure --enable-threads --enable-symbols --enable-shared --enable-framework --enable-aqua --with-tcl=/Users/lee/tcltktix/src/tcl8.5.19/macosx/
make
sudo make install
- 编译 Tix 并安装它
[重要] --with-tcl=**** --with-tk=**** 替换您的真实目录。
“dir--with-**”的最后一个字符,必须是“/”
cd /Users/lee/tcltktix/src/Tix8.4.3
./configure --enable-threads --enable-shared --enable-framework LDFLAGS="-L/usr/X11/lib" --with-tcl=/Users/lee/tcltktix/src/tcl8.5.19/macosx/ --with-tk=/Users/lee/tcltktix/src/tk8.5.19/macosx/
make
sudo make install
现在已经安装了 Tix。
问题
如果接收找不到 tclConfig.h:
检查您的编译配置命令集中的目录,是否有“/”是最后一个字符?
2.如果你mac反馈一个致命错误:'X11/Xlib.h' file not found during compile,你应该链接文件:
ln -s /opt/X11/include/X11 /usr/local/include/X11
查看
MacBook-Air-1531:~ lee$ python3
Python 3.7.5 (v3.7.5:5c02a39a0b, Oct 14 2019, 18:49:57)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from tkinter import tix
>>>
>>> root = tix.Tk()
>>>
现在,出现了一个标题为“tix”的窗口。
祝贺!!!
推荐阅读
- bazel - Bazel-如何获取目标的所有传递源
- ios - 我如何将 NSRangeException 解决为 swift 4?
- python - 将scrapy项目导出到不同的文件
- opengl-es-2.0 - 开启深度测试,还是不行?
- ruby-on-rails - Rails 说没有路线匹配,但我在“rake 路线”中看到它
- reactjs - 组件不会重新渲染
- string - 将字符串的索引与字符进行比较
- java - 如何修复运行 Hadoop 程序的 Eclipse 中的 InputBootStrapper 错误?
- jquery - 具有内容类型应用程序/八位字节流的 AJAX 响应
- algorithmic-trading - Amibroker AFL 代码 Buy Sell 状态未在 if 条件下获取