Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Kivy与Python 3.4结合使用_Python_Python 3.x_Kivy_Python 3.4 - Fatal编程技术网

将Kivy与Python 3.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

我已经在我的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 /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)