Macos Python 3在OSX上运行,在Linux和windoze上运行,tk库可能会发布

Macos Python 3在OSX上运行,在Linux和windoze上运行,tk库可能会发布,macos,python-3.x,tkinter,tk,Macos,Python 3.x,Tkinter,Tk,我在Python方面相当有经验,但在OSX方面完全没有经验。我已经在windoze和linux上使用它好几年了。不幸的是,我现在需要用El Capitain 10.11.3将东西移植到iMac 在尝试安装之前,我查看了指南,特别是tk/tcl库版本的问题。因此,我访问了ActiveState,并安装了最新版本,然后是python 3.5.1。这是我从来没有做过的事情 简单文本程序运行正常,无论是从空闲/运行、python3 progname还是shebang。下面的简单tki程序也可以正常运行,

我在Python方面相当有经验,但在OSX方面完全没有经验。我已经在windoze和linux上使用它好几年了。不幸的是,我现在需要用El Capitain 10.11.3将东西移植到iMac

在尝试安装之前,我查看了指南,特别是tk/tcl库版本的问题。因此,我访问了ActiveState,并安装了最新版本,然后是python 3.5.1。这是我从来没有做过的事情

简单文本程序运行正常,无论是从空闲/运行、python3 progname还是shebang。下面的简单tki程序也可以正常运行,也可以通过这三种启动方法运行

#! /Library/Frameworks/Python.framework/Versions/3.5/bin/python3

import tkinter as tki

def cmd():
    print('doing command')
    exit()

root = tki.Tk()
but = tki.Button(root, text='hello', command=cmd)
but.grid()

root.mainloop()
但当我尝试运行一个基于tki的大型应用程序时,它抱怨说它在/Library/Frameworks/中发现了类TKApplication、TKMenu、TKContentView和TKWindow。。。安装python的位置是/System/Library/Frameworks/。。。这大概就是ActiveState安装tcl/tk的地方。然后,它以SEG11故障退出。该应用程序基本上是低级的tk东西,只是很多。这两个位置的名称中都包含/Versions/8.5/

我怀疑问题的关键是,上面说的TKxx中的哪一个将被使用是未定义的。也许这是一种混合,所以当他们彼此交谈时,他们不在可预测的地点

这是怎么回事?为什么简单的tk应用程序可以工作,而复杂的tk应用程序却不能工作,是因为它的大小,还是需要使用来自不同库的几个类

由于python树中似乎有一组tk库,我倾向于删除ActiveState库。这是否合理?我该怎么做(Mac noob警报)


我似乎无法找到在OSX上安装Python3的确切方法。对于10.11.3来说,没有太多特别的内容,这个OSX版本需要一个不同的过程吗?

我想可能会发生一些冲突,把事情搞得一团糟,因此出现了错误。我建议您在MacPorts、virtualenv上安装所需的其他Python版本,或者自己从源代码构建—MacPorts可能是最简单的方法。啊,问题出在这里。我只是一个用户,尽管默认情况下是国内系统管理员。我正在努力做到这一点,而不是成为一名开发人员。这意味着没有从源代码进行构建,没有virtualenv,只需安装一个Python版本。我已经快速浏览了macports,搜索python时的5112个结果!我已经有文字和简单的tki工作,我会坚持尝试解决现有的安装问题。你需要跟踪错误在哪里。发布您的实际错误。同时尝试使用MacPorts Tcl/Tk而不是ActiveState。