在 Python 3.4 中使用 Kivy
Posted
技术标签:
【中文标题】在 Python 3.4 中使用 Kivy【英文标题】:Using Kivy with Python 3.4 【发布时间】:2014-05-20 16:41:07 【问题描述】:我已经在我的 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
【问题讨论】:
【参考方案1】:这一行:
dlopen(/Applications/Kivy.app/Contents/Resources/kivy/kivy/_event.so, 2)
正在尝试打开一个共享对象,该对象将被编译为您安装 Kivy 所针对的显式 Python 版本。
任何包含预编译依赖项的 Python 包仅适用于编译它们的 Python 版本。
【讨论】:
我几乎没有使用 Python 的经验。我该如何解决这个问题? 此外,我的理解是 Kivy 1.8.0 是为 Python 2 和 Python 3 构建的,如下所述:kivy.org/docs/faq.html#does-kivy-support-python-3-x 如果你自己编译,那可能是真的。如果您使用的是预构建的软件包,则不会。【参考方案2】:Kivy 尚未使用 Python 3.4 进行测试。它在 Python 3.3 上运行良好。
【讨论】:
exec /Library/Frameworks/Python.framework/Versions/3.3/bin/python "$@"
(Python 3.3.5) 出现同样的错误。【参考方案3】:
我已经开始使用 Python 3.5 在 OSX El Capitan 上工作了。 Here's how I did it.
您需要 brew install 依赖项,然后修改 setup.py 以使用 brew 安装的依赖项。默认的 setup.py 会查看你的 frameworks 目录,但这不是 brew 放置新文件的地方!
【讨论】:
【参考方案4】:我能够为 python 3.5 安装 kivy。我不需要做任何额外的事情,只需定期安装 kivy 就可以了。
【讨论】:
问题是关于 Python 3.4,而不是 3.5。 我只提到了我的经历。在我安装 kivy 的时候,文档说它不适用于我的 python 版本,但确实如此,所以我认为他的 python 版本低于我的版本,他应该能够很好地使用它。跨度>以上是关于在 Python 3.4 中使用 Kivy的主要内容,如果未能解决你的问题,请参考以下文章
强制 Nosetests 使用 Python 2.7 而不是 3.4
TypeError:对象在 DJango 1.8 Python 3.4 中不是 JSON 可序列化的
如何在 Windows 上使用 python 3.4 在 ptqt5 中获取 QtWebEngineView?
如何在 Anaconda 2.0 中使用 Python 3.4 激活 Ipython Notebook 和 QT 控制台