kivy Club

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 7013|回复: 0

【前方高能系列之二】anaconda下编译安装kivy

[复制链接]

3

主题

6

帖子

79

积分

超级版主

Rank: 8Rank: 8

积分
79
发表于 2016-4-28 10:48:42 | 显示全部楼层 |阅读模式
0x01  情况是这样的
    老夫重装了系统,重装kivy的时候用的是最新稳定版1.9.1,发现运行kivy程序时提示opengl版本过低,后来谷歌了一圈在官方的github上看到说是1.9.1开始的bug,不能正常识别某些显卡的opengl版本,于是老夫就开始研究编译安装kivy,因为官方提供的1.9.0包是自带python的,而我要把kivy安装到anaconda上,就有了这篇文章。
         本文环境:win7 64-bit 旗舰版、anaconda 2.2.0 64-bit python 2.7.9(安装在D:\DEV)
0x02   安装kivy出现opengl错误

使用conda搜索没有找到适用于64bitpython 2.7.10的kivy,可能是没有加入anaconda模块库。这里直接从这里戳我下载Kivy-1.9.1+sdl2-cp27-none-win_amd64.whl

  1. pip install Kivy-1.9.1+sdl2-cp27-none-win_amd64.whl
复制代码

  要让视频能够运行,必须安装gstreamer。这里从官网下载gstreamer并安装。运行例子中的videoplayer.py会显示如下提示。


  经过搜索得知是1.9.1以及之后的kivy版本存在的bug,不能正常识别系统显卡的opengl版本。


0x03   编译安装kivy
    在编译之前,我们需要先升级下condapipwheelsetuptool等包管理工具,命令:
  1. conda update conda
复制代码

根据官网windows下kivy编译步骤新建Anaconda\Lib\distutils\distutils.cfg,写入如下内容:

  1. [build]
  2. compiler = mingw32
复制代码

    我们不使用上述连接中提到的下载mingwpy进行编译,因为mingwpy未能正常识别出dep.kivy.gstreamerdep.kivy包,在编译kivy中提示未能找到gst.h,我怀疑dep.kivy.gstreamer作为已编译包不包含头文件,并且Anaconda不能正常兼容dep.kivy包,在启动python时会提示dep.kivy包的pth文件错误,需要注释掉pth文件才能正常启动pythonconda等工具,但是注释掉pth就不能使用dep.kivy包。

  从官网获取1.9.0的安装包解压这个压缩包,把gstreamer、MinGW、SDL2复制到DEV目录下,建立编译kivy的环境,在DEV下新建批处理文件kivy-2.7.bat,内容如下:

  1. @ECHO off

  2. set KIVY_PORTABLE_ROOT=%~dp0
  3. set PY_VER=27
  4. set PYTHON_DIR=Anaconda
  5. ::set KIVY_DIR=kivy%PY_VER%
  6. ECHO botstrapping Kivy @ %KIVY_PORTABLE_ROOT% with Python %KIVY_PORTABLE_ROOT%%PYTHON_DIR%


  7. IF DEFINED kivy_paths_initialized (GOTO :runkivy)

  8. ECHO Setting Environment Variables:
  9. ECHO #################################

  10. set GST_REGISTRY=%KIVY_PORTABLE_ROOT%gstreamer\registry.bin
  11. ECHO GST_REGISTRY
  12. ECHO %GST_REGISTRY%
  13. ECHO ---------------

  14. set KIVY_SDL2_PATH=%KIVY_PORTABLE_ROOT%SDL2\lib;%KIVY_PORTABLE_ROOT%SDL2\include\SDL2;%KIVY_PORTABLE_ROOT%SDL2\bin
  15. ECHO KIVY_SDL2_PATH
  16. ECHO %KIVY_SDL2_PATH%
  17. ECHO ---------------

  18. set USE_SDL2=1
  19. ECHO USE_SDL2
  20. ECHO %USE_SDL2%
  21. ECHO ---------------

  22. set GST_PLUGIN_PATH=%KIVY_PORTABLE_ROOT%gstreamer\lib\gstreamer-1.0
  23. ECHO GST_PLUGIN_PATH:
  24. ECHO %GST_PLUGIN_PATH%
  25. ECHO ---------------

  26. set PATH=%KIVY_PORTABLE_ROOT%;%KIVY_PORTABLE_ROOT%%PYTHON_DIR%;%KIVY_PORTABLE_ROOT%tools;%KIVY_PORTABLE_ROOT%%PYTHON_DIR%\Scripts;%KIVY_PORTABLE_ROOT%gstreamer\bin;%KIVY_PORTABLE_ROOT%MinGW\bin;%KIVY_PORTABLE_ROOT%SDL2\bin;%PATH%
  27. ECHO PATH:
  28. ECHO %PATH%
  29. ECHO ----------------------------------

  30. set PKG_CONFIG_PATH=%KIVY_PORTABLE_ROOT%gstreamer\lib\pkgconfig;%PKG_CONFIG_PATH%
  31. ::set PYTHONPATH=%KIVY_PORTABLE_ROOT%%KIVY_DIR%;%PYTHONPATH%
  32. ECHO PYTHONPATH:
  33. ::ECHO %PYTHONPATH%
  34. ECHO ----------------------------------

  35. SET kivy_paths_initialized=1
  36. ECHO ##################################


  37. :runkivy

  38. ECHO done bootstraping kivy...have fun!\n
  39. IF (%1)==() GOTO SHELL
  40. ECHO running "python.exe %*" \n
  41. python.exe  %*
  42. IF %errorlevel% NEQ 0 (PAUSE)
  43. GOTO END
  44. :SHELL
  45. ECHO.
  46. ECHO -----------------------------------------------------------------------
  47. ECHO - Running a shell, you can browse kivyexamples and launch apps with: -
  48. ECHO - python app.py -
  49. ECHO -----------------------------------------------------------------------
  50. ECHO.
  51. cmd
  52. :END
复制代码
从官方github下载1.9.0源代码放到DEV目录下,运行kivy-2.7,命令:
  1. pip install kivy-stable-1.9.0.zip
复制代码

就会自动编译并安装kivy 1.9.0

转载请注明来自kivy中文论坛http://kivy.club   by面包sama

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|kivy.Club

GMT+8, 2024-4-24 10:34 , Processed in 0.161694 second(s), 24 queries .

Powered by Discuz! X3.2

Design By S!|ƽ̶

快速回复 返回顶部 返回列表