4

我已经在我的 Mac 上安装了 Kivy。OS X 随 Python 2.7 一起安装。我想使用 Python 3 的枚举特性,所以我安装了 Python 3.4。经过多次搜索和梳理头发,我被指向了这条线

exec $(python -c "import os, sys; print os.path.normpath(sys.prefix)")/bin/python2.7 "$@"

在文件 /Applications/Kivy.app/Contents/Resources/script 中。我将其更改为:

exec /Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 "$@"

希望迫使 Kivy 使用 Python 3.4。

我现在收到此错误:

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    from kivy.app import App
  File "/Applications/Kivy.app/Contents/Resources/kivy/kivy/app.py", line 321, in <module>
    from kivy.base import runTouchApp, stopTouchApp
  File "/Applications/Kivy.app/Contents/Resources/kivy/kivy/base.py", line 29, in <module>
    from kivy.event import EventDispatcher
  File "/Applications/Kivy.app/Contents/Resources/kivy/kivy/event.py", line 8, in <module>
    import kivy._event
ImportError: dlopen(/Applications/Kivy.app/Contents/Resources/kivy/kivy/_event.so, 2):    Symbol not found: _PyString_Type
  Referenced from: /Applications/Kivy.app/Contents/Resources/kivy/kivy/_event.so
  Expected in: flat namespace
 in /Applications/Kivy.app/Contents/Resources/kivy/kivy/_event.so

任何人都可以帮助解决此错误吗?或者有没有更好的方法让 Kivy 使用 Python 3.4?

我已经安装了 Kivy 1.8.0。

我正在从终端运行应用程序,例如

kivy main.py
4

4 回答 4

2

Kivy 尚未使用 Python 3.4 进行测试。它在 Python 3.3 上运行良好。

于 2014-04-08T12:43:04.177 回答
2

这一行:

dlopen(/Applications/Kivy.app/Contents/Resources/kivy/kivy/_event.so, 2)

正在尝试打开一个共享对象,该对象将针对您安装 Kivy 的显式 Python 版本进行编译。

任何包含预编译依赖项的 Python 包仅适用于编译它们的 Python 版本。

于 2014-04-08T06:40:45.040 回答
1

我已经开始使用 Python 3.5 在 OSX El Capitan 上工作了。这就是我的做法。

您需要 brew install 依赖项,然后修改 setup.py 以使用 brew 安装的依赖项。默认的 setup.py 将查看您的框架目录,但这不是 brew 放置新文件的地方!

于 2015-11-23T18:27:36.860 回答
0

我能够为 python 3.5 安装 kivy。我不需要做任何额外的事情,只需定期安装 kivy 就可以了。

于 2016-11-19T18:22:20.820 回答