将Kivy与Python 3.4结合使用
我已经在我的Mac上安装了Kivy。OSX随Python 2.7一起安装。我想使用Python3的枚举特性,所以安装了Python3.4。在对头发进行了多次搜索和梳理之后,我被指向了这条线将Kivy与Python 3.4结合使用,python,python-3.x,kivy,python-3.4,Python,Python 3.x,Kivy,Python 3.4,我已经在我的Mac上安装了Kivy。OSX随Python 2.7一起安装。我想使用Python3的枚举特性,所以安装了Python3.4。在对头发进行了多次搜索和梳理之后,我被指向了这条线 exec $(python -c "import os, sys; print os.path.normpath(sys.prefix)")/bin/python2.7 "$@" 在文件/Applications/Kivy.app/Contents/Resources/script中。我把它改成: exec
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
这一行:
dlopen(/Applications/Kivy.app/Contents/Resources/kivy/kivy/_event.so, 2)
正在尝试打开一个共享对象,该对象本来是为安装Kivy的Python显式版本编译的
任何包含预编译依赖项的Python包都只适用于它们编译时使用的Python版本。Kivy尚未使用Python 3.4进行测试。它在Python3.3中运行良好。我让kivy用Python3.5开发OSX El Capitan
您需要brew安装依赖项,然后修改setup.py以使用brew安装的依赖项。默认的setup.py将查看frameworks目录,但brew不会在那里放置新文件 我能够为python 3.5安装kivy。我不需要做任何额外的事情,只需定期安装kivy,它就可以正常工作。我几乎没有Python方面的经验。我如何解决这个问题?此外,我的理解是,Kivy 1.8.0是为Python 2和Python 3构建的,正如这里所述:如果您自己编译它,这可能是正确的。如果您使用的是预构建的包,则不会。我在
exec/Library/Frameworks/Python.framework/Versions/3.3/bin/Python“$@”(Python 3.3.5)中遇到了相同的错误。问题是关于Python 3.4,而不是3.5。我只提到了我的经验。在我安装kivy时,docs说它不能与我的python版本一起工作,但它确实可以,因此我认为,由于他的python版本低于我的python版本,他应该能够很好地使用它。
dlopen(/Applications/Kivy.app/Contents/Resources/kivy/kivy/_event.so, 2)