Conda Kivy Windows

977 views
Skip to first unread message

Piet Jones

unread,
Dec 2, 2014, 8:03:00 AM12/2/14
to kivy-...@googlegroups.com
Hi,

Kivy is amazing! I have written a kivy application on my linux distribution
successfully. I now want to compile this into a kivy application that can
work on windows. Following the instruction on kivy on how to package a
script on windows, mentions I need to do this all on windows with
pyinstaller.

So I have a Anaconda installation of Python on windows but for some reason
I am struggling to get kivy to work on windows. I have tried the following.

Following the installation instructions on
http://kivy.org/docs/installation/installation-windows.html
This however gives me a completely seperate python installation without the
libraries necessary to run my script ( numpy, scipy, pandas, matplotlib). I
then tried to install these, but I struggle to install scipy.

I also tried to install kivy in my Anaconda python installtion (which has
all the packages I need except kivy) using pip install kivy. This created
issues with compilers, Visual Studio 2008 problems. After installing Visual
Studio 2008, as suggested by the warning comment in this post
http://stackoverflow.com/questions/2817869/error-unable-to-find-vcvarsall-bat/10558328#10558328

I get from pip install kivy, (last part of pip.log):
----
copying kivy\tools\packaging\osx\kivy.sh -> build\lib.win-amd64-2.7\kivy\tools\packaging\osx running build_ext Build configuration is: * use_rpi = False * use_opengl_es2 = True * use_opengl_debug = False * use_glew = True * use_sdl = False * use_ios = False * use_mesagl = False * use_x11 = False * use_gstreamer = False * use_avfoundation = False Generate config.h Generate config.pxi Detected compiler is msvc cythoning c:\users\piet~1.jon\appdata\local\temp\pip_build_piet.jones\kivy\kivy\graphics/texture.pyx to c:\users\piet~1.jon\appdata\local\temp\pip_build_piet.jones\kivy\kivy\graphics\texture.c building 'kivy.graphics.texture' extension Traceback (most recent call last): File "<string>", line 1, in <module> File "c:\users\piet~1.jon\appdata\local\temp\pip_build_piet.jones\kivy\setup.py", line 675, in <module> install_requires=['Kivy-Garden==0.1.1']) File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\core.py", line 151, in setup dist.run_commands() File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\dist.py", line 953, in run_commands self.run_command(cmd) File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\dist.py", line 972, in run_command cmd_obj.run() File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\site-packages\setuptools-7.0-py2.7.egg\setuptools\command\install.py", line 61, in run File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\command\install.py", line 563, in run self.run_command('build') File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\cmd.py", line 326, in run_command self.distribution.run_command(command) File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\dist.py", line 972, in run_command cmd_obj.run() File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\command\build.py", line 127, in run self.run_command(cmd_name) File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\cmd.py", line 326, in run_command self.distribution.run_command(command) File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\dist.py", line 972, in run_command cmd_obj.run() File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\site-packages\Cython\Distutils\build_ext.py", line 163, in run _build_ext.build_ext.run(self) File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\command\build_ext.py", line 337, in run self.build_extensions() File "c:\users\piet~1.jon\appdata\local\temp\pip_build_piet.jones\kivy\setup.py", line 136, in build_extensions build_ext.build_extensions(self) File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\site-packages\Cython\Distutils\build_ext.py", line 171, in build_extensions self.build_extension(ext) File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\command\build_ext.py", line 496, in build_extension depends=ext.depends) File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\msvc9compiler.py", line 473, in compile self.initialize() File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\msvc9compiler.py", line 383, in initialize vc_env = query_vcvarsall(VERSION, plat_spec) File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\site-packages\setuptools-7.0-py2.7.egg\setuptools\msvc9_support.py", line 52, in query_vcvarsall File "C:\Users\piet.jones\AppData\Local\Continuum\Miniconda\lib\distutils\msvc9compiler.py", line 299, in query_vcvarsall raise ValueError(str(list(result.keys()))) ValueError: [u'path']
---

The kivy documentation suggests that this might be a bad idea as the instructions for compiling a package requires running kivy.bat, which does some environmental prep and naturally uses the new python installation and not my Anaconda installation. Is this assumption correct? What is the best way around this? Is there a easier way to get kivy installed in an already existing python installation, or is that a fool's errand? (Sorry have not used windows is some time, and I defininately do not code on windows). Any help/advice would be appreciated. Kind Regards, Piet Jones

Piet Jones

unread,
Dec 3, 2014, 5:08:14 AM12/3/14
to kivy-...@googlegroups.com
Found a work around, which is not ideal but it works, basically it involves recreating everything in the kivy based python environment.

Double click kivy.bat to create the environment. Then in that console do the following:
-Run the script from http://effbot.org/zone/python-register.htm, to add the current python to the registry.
-pip install numpy
-Download the 32bit version of scipy windows exe installer from: http://sourceforge.net/projects/scipy/files/scipy/0.14.0/
  - when installing make sure that the kivy python is selected
-Similarly for matplotlib: http://matplotlib.org/downloads.html
-pip install pandas
-pip install pyside

Had to use the 'Qt4Agg' backend for matplotlib plots to show by adding to my app script, at the top:

import matplotlib
matplotlib.use('Qt4Agg')

Then for pyinstaller, I had to add 'scipy.special._ufuncs_cxx' to the hiddenimports list in the spec file that was generated for my app.
Reply all
Reply to author
Forward
0 new messages