【问题标题】:Fixing Python 3 tkinter issues on Mac with a virtualenv使用 virtualenv 在 Mac 上修复 Python 3 tkinter 问题
【发布时间】:2016-08-30 07:56:35
【问题描述】:

认为这个问题的简短版本是:如何让运行 Python 3.5 的 virtualenv 指向 Mac 上 ActiveTcl 的正确版本?


这是更长的版本:

我正在尝试在 Mac 上运行 this Korg Electribe sample editor project。作者只在 Windows 上进行了测试,根据截图,它似乎可以工作。我已经能够很好地运行基本的python脚本,但是as I mention in an issue that I've opened,加载文件后整个窗口变黑了。

在做了一些研究后,我发现有一个known issue with Aqua Cocoa Tk,python.org 有provided some instrunctions 关于如何修复 Mac OS 10.9 及更高版本的tkinter。我已尝试安装建议的 ActiveTcl (8.5.18.0) 以及较新的 8.6.x.x 版本,但均未成功。

我很确定这是与Tkinter not working mac osx el capitan 不同的问题,因为脚本确实运行,并且窗口在启动时正确绘制。只有在我尝试加载.all 文件(Github 问题中有一个示例文件)之后,屏幕才会变黑。

经过更多研究,我发现这个问题似乎相关,但特定于 Windows:TKinter in a Virtualenv

我的印象是,如果我能弄清楚将 TCL_LIBRARY 设置为什么,我就能取得一些进展,但我似乎找不到列出的包的信息在 python.org 上。

有点相关,如果我能从 Python 中找出tkinter 指向的Tcl/Tk 的哪个 版本,这似乎也很有帮助,所以如果有人可以帮助解决这个问题好吧,我将不胜感激。

谢谢!

【问题讨论】:

  • 你有想过这个吗?
  • 上面链接的 Github 问题已经有一些更新和 cmets,但我还没有跟进查看问题是否真的解决了,或者原因是什么。

标签: python macos tkinter


【解决方案1】:

我在 OSX 10.13 上的 python3 virtualenv 中成功使用了 tkinter:

  • https://www.python.org/安装官方OSX Python 3
  • https://www.activestate.com/activetcl安装activeTcl
  • 创建一个新的虚拟环境

    mkvirtualenv myenv --python=python3
    
  • 在 Python3 目录中定位 tkinter 位置。对我来说,它就在这里:

    /usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter
    
  • 在 virtualenv 库中创建一个指向 tkinter 位置的符号链接

    cd ~/.virtualenvs/myenv/lib/python3.6
    ln -s /usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter tkinter
    

【讨论】:

  • 是的!你终于结束了我在互联网上漫无目的的徘徊。这是 ubuntu 18.04 上 virtualfish 环境的问题。我的魔法咒语竟然是ln -s /usr/lib/python3.6/lib-dynload/_tkinter.cpython-36m-x86_64-linux-gnu.so ~/.virtualenvs/science/lib/python3.6/lib-dynload/_tkinter.cpython-36m-x86_64-linux-gnu.soscience 是虚拟环境名称;根据需要进行修改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 2020-09-27
  • 2011-01-22
  • 2013-11-06
  • 2014-07-13
  • 1970-01-01
  • 2011-05-30
相关资源
最近更新 更多