如何让 kivy 在 OS X 上使用特定版本的 python?

Posted

技术标签:

【中文标题】如何让 kivy 在 OS X 上使用特定版本的 python?【英文标题】:How to make kivy use specific version of python on OS X? 【发布时间】:2015-08-14 07:28:09 【问题描述】:

我在 OSX yosemite 上安装了多个版本的 python。这些都像我希望的那样工作(即我可以使用 2.7.10 而不是 3.4.x 或系统 2.5.x)。 我注意到,当我使用 kivy 运行 .py 文件时,我没有收到任何警告,但我确实收到了:

[INFO   ] [Python      ] v2.7.6 (default, Sep  9 2014, 15:04:36)   

但是当我使用以下命令启动 IDLE 时:pythonkivy

这两个命令都使用 2.7.10 启动 IDLE 提示符 kivy 应该使用当前的 Python 版本吗?

echo $PATH  

/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/local/bin:/opt/local/sbin:/opt/ local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/版本/当前/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin :/Users/subnetfile/android-sdk_r16-macosx/android-sdk-macosx/platform-tools/:/Users/subnetfile/android-sdk-macosx/android-sdk-macosx/platform-tools/:/Library/Frameworks/ Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/ 2.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

我现在想知道为什么我有所有重复的路径条目...? 我可以使用以下任何一种方式调用 Python:

python            python2-32        python2.6         python2.7-config  pythonw2-32       pythonw2.7-32
python-32         python2-config    python2.6-config  pythonw           pythonw2.5        
python-config     python2.5         python2.7         pythonw-32        pythonw2.6        
python2           python2.5-config  python2.7-32      pythonw2          pythonw2.7    

但是,正如我所说,当我只调用“python”时,它会根据需要调出 2.7.10。 kivy 只是使用旧版本的 Python 吗?

【问题讨论】:

你如何选择在第一段中运行哪个python(系统python不是2.5,在优胜美地10.10.3上是2.7.6)以及你是如何安装python的? @Mark Just 2.x 的二进制安装程序,3.x 的 macports。系统python曾经是2.5。我只有 2.3,2.5 作为链接,在 system/library/frameworks/python.framework/versions 中只有 2.6,2.7。 你的路径是什么,你如何选择运行哪个python @Mark 查看上面的编辑 我认为你应该首先理清你的路径:) 我会坚持一种方式——macports 或二进制。该路径将使 python 成为 2.7.10 【参考方案1】:

.kv 文件通过 Finder 与 .app 捆绑包相关联。在这种情况下 Kivy.app

运行 GUI 应用程序不知道您在 bash 启动脚本中设置的 PATH,因此只能在 Apple 在操作系统中设置的路径上找到 python。在这种情况下,我认为应用程序找到 /usr/bin/python 系统提供的 python 是 2.7.6

命令行将使用您的路径(需要整理),它找到的第一个 python 是 /Library 中的那个,它将是来自 python.org 的 2.7,目前最新的是 2.7.10(我假设 ivy 脚本也找到了这个,但我不知道它的详细信息)

您的路径是在 shell 启动文件中设置的,请参阅answer 了解更多详情

【讨论】:

这是有道理的。我可以修复终端 PATH,但我可以更改 .app 包中使用的操作系统路径吗? 查看 Yosemite 下需要编辑 app bundle 或使用 launchtl 的其他问题

以上是关于如何让 kivy 在 OS X 上使用特定版本的 python?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mac OS X 上安装特定的 JDK?

在 Mac OS X 上用于 Python 3 的 Kivy

如何在 mac os x 中安装/下载特定版本的 cassandra 分布式数据库?

如何在 mac os X 上配置 tomcat?

如何在最新的OS X上安装多个版本的Python并同时使用它们?

如何让 Kivy 1.9.1 或 1.9.2 在 OSX 10.12.2 上使用 SDL2 而不是 pygame?