使用virtualenv修复Mac上的Python 3 tkinter问题

问题描述 投票:6回答:1

我认为这个问题的简短版本是:如何让运行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上列出的软件包的信息。

有点相关,如果我能弄清楚tkinter在Python中指向哪个版本的Tcl / Tk似乎也会有所帮助,所以如果有人也可以提供帮助,我会非常感激。

谢谢!

python macos tkinter
1个回答
1
投票

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

  • https://www.python.org/安装官方OSX Python 3
  • https://www.activestate.com/activetcl安装activeTcl
  • 创造一个新的virtualenv mkvirtualenv myenv --python=python3
  • 将tkinter位置定位在Python3目录中。对我来说,它在这里: /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
© www.soinside.com 2019 - 2024. All rights reserved.