3 ms·
There appears to be a multi-step process to install Kivy on Windows. Isn't the whole point of pip to not have to worry about that? I was expecting "pip install
by Mandatum 9y ago
There appears to be a multi-step process to install Kivy on Windows. Isn't the whole point of pip to not have to worry about that?
I was expecting "pip install kivy" > "python helloworld.py" > done
Instead I got "install these things", "if you're using this version install this other thing", "cool now install kivy".
I went ahead and tried to package a Windows app using their recommended method (PyInstaller), and PyInstaller doesn't support current version of Python.
Thought I'd take a look at other offerings, for iOS there's a weird project-mirror XCode generator script. Android isn't any better.
I mean, this is more of a reflection on the disparity across different platforms and packaging tools rather than Kivy itself. There's a reason some large Enterprises won't touch all of these tiny, moving, fragile tech.
In saying all of that, I think Kivy has some very nice points. The examples are straightforward, and to-the-point, covering a lot of use cases. However I think having this as a >1.0 versioned release is kind of crazy. When comparing this to other frameworks, why would you ever choose this? Aside from "I like Python"? Definitely shows a lot of promise, but I think sitting in sub 1 state for a while like Rust until you've got something going for you would help with adoption and on-boarding.
EDIT: Tried to use PyInstaller from source, no luck - SDL required. Found a closed bug report which explains how to fix it - the "optional" library has to be installed for PyInstaller to work. Go figure. https://github.com/kivy/kivy/issues/4482 https://github.com/kivy/kivy/issues/4482
- e12e 9y agoPython with c modules (kivy relies heavily on cython) is still a bit tricky on windows. But binary wheels have made distribution a bit easier - ideally "pip install kivy" should work, for now I think the easiest path is to download relevant wheels, install dependencies with pip, and then install the relevant wheel (pip install kivy-version.whl). I did at least get it to work fairly easily following the instructions at: https://kivy.org/docs/installation/installation-windows.html https://kivy.org/docs/installation/installation-windows.html last time I tried. Still work to be done, though :/
- usmeteora 9y agoI work with Kivy in Windows at work using pip. I tried binary wheels but manually installing can be tricky with windows, but not impossible. Kivy and its modules install fine using Kivy with me. The issues I had were setting up the correct path variables in Windows. You need Python\Scripts and Python in your Windows path like so: C:\Python34\Scripts;C:\Python34; Please note, another issue you might run into is if you have two different version of Python on your machine. You might already have an older versions of python and not realize it, which can make setting it up difficult. I had to take Python 2.7 out of my path, and Windows seems to only want one version in it's path at a time, from my limited experience. Work Firewalls (obvious but some people still report troubles for installing due to this when its not a python issue or Kivy issue, just a work environment) depending on your work environment (I assume anyone working with Windows is doing it because they have to due to work environments) you will need to potentially (with sys admin approval of course) install by bypassing a firewall. I work at an extremely locked down secure environment and the only issues I had installing Kivy and its modules were working with my IT department to work with security protocols and firewalls, and I'm running Windows 7 even. I highly recommend Kivy for desktop only based Apps and it renders some beautiful phone apps as well. I am looking into electron for desktop apps too, but I did alot of research on this and Kivy is a really good option even over qt in my opinion. The only issue I have is its lack of ability to do node based plotting. It's more of a physics engine based environment and good for Dashboard settings and real time chronological plotting, music apps, interactive games as it has an embedded webgl library and touchscreen binding events. There is a matplotlib module but honestly who wants a screen shot of a matlab plot in Kivy? You can install NetworkX with WebGL but it is outdated for Python 3.4 On my long list of todos is getting a node based graphing module wrapped for Kivy. if you will be continuing to develop in Kivy, I highly recommend r/kivy. It's moderators are alive, well and responsive and it is a good community for Kivy dev.
- e12e 9y agoNote that python3.4 is pretty old - in particular 3.5 fixed a few things - and 3.6 has been out a little while. So for anyone else that's coming into this for the first time, I'd recommend the latest stable, official python (3.6.1 at the time of this writing). The official python is built with/works with Visual Studio (the community version works fine) - and with hooking off "add python to path" in the python installer along with first installing Microsoft Visual studio command line build tools/compiler -- most regular python packages should install nicely with with pip. For your own sanity, please do use "virtual environments" (venvs) -- now officially part of python: python -m venv kivy-venv Will create a python3 venv in a folder called "kivy-venv" -- that can be activated in powershell via the script: "kivy-venv\Scripts\Activate.ps1". Then commands like "pip" will be run in the context of that venv, and not mess with system python. For reasons I don't fully understand, the official python binary on all other platforms, post python 3, is "python3", while on windows it remains "python". This leads to some additional conflicts on windows if both python 2 an 3 are installed. You can also install python in your user profile - and if you do so, running the default installed pip outside of an activated python virtual environment will mess up your install (and/or fail). Always use a venv when doing anything in python. The only exception is if you're creating your own linux/os distribution, and want python to power part of your distribution tooling (eg: the package manager, like "apt").