如何在不支持 tk 的情况下构建 Python3?

Posted

技术标签:

【中文标题】如何在不支持 tk 的情况下构建 Python3?【英文标题】:How to build Python3 WITHOUT support for tk? 【发布时间】:2015-02-11 17:10:42 【问题描述】:

基本上我想构建一个最小版本的 Python 3(它将在无头服务器上运行,因此没有 GUI、没有鼠标、没有键盘)。大多数 Python 包对 tk 的依赖引入了 X 和一堆我不想要的其他 UI 东西。

./configure --help 中没有任何内容告诉我如何使用 tk 关闭构建。在源 tarball 中包含的 README 文件中也没有任何内容。很难找到这方面的信息,所以需要什么样的咒语?

【问题讨论】:

我没有提交答案,因为我无法具体说明。但是你应该看的地方是Modules/Setup.dist。无论如何要注意标准库的文档是最大的足迹,但删除它有点棘手。如果我记得的话,星期一我可以看看我是如何在 blackfin 上为 python 2.4 做的,并尝试提交答案。请随时给我发消息以记住它。 unix/linux buildbots 通常是无头的。假设它们是在没有 tk 的情况下构建的,您可能在 Tool/buildbot 中找到一些有用的东西。 同样的问题,尤其是 macOS。 我也想要那个选项...... cpython 中没有 configure 的 --without-tcl-tk 标志,但如果有那就太好了。我不希望我的 pthon 中的所有 tkinter 和空闲 - 这只是问题的根源。我看了看,对于一种情况,我永远不会使用 idle 或 tcl-tk - 我不想要任何 GUI,而当我想要 GUI(另一种情况和另一个构建)时,我更喜欢使用其他框架(例如 Qt)。 python 发布的“包含电池”方法在这里很痛苦,那些用于 GUI 的电池在外部模块而不是标准库中会更好 【参考方案1】:

如果您尝试构建 Python 的服务器没有安装 tcl/tk,那么 Python 将在构建过程中跳过该部分。

【讨论】:

即使在我的开发环境安装了特定的 gui 框架的情况下(例如,Xcode 在 MacOS 上推出了糟糕的框架),在没有 tk 的情况下构建“精益”版本的 python 也会非常好。我只是想在构建中关闭它,而不是修改环境......而且很容易 另外,当交叉编译到另一个目标时,比如为嵌入式系统构建 Python...

以上是关于如何在不支持 tk 的情况下构建 Python3?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用祖先或自我的情况下构建祖先树:: *

“不支持”在不指定 RuntimeIdentifier 的情况下构建或发布自包含应用程序

error NETSDK1031:不支持在不指定 RuntimeIdentifier 的情况下构建或发布自包含应用程序

Testflight 如何在不触发完整审查的情况下更新构建?

Automake:如何在不安装的情况下构建共享库

如何在不修改任何项目的情况下加速 xcode 构建?