I've entered this code in Pyscripter:
import kivy
kivy.require('1.7.2')
from kivy.app import App
from kivy.uix.label import Label
class MyApp(App):
def build(self):
return Label(text='Hello Kivy')
MyApp().run()
I then press the Run button (the green triangle).
I get the following error:
Import error: No module named kivy
What can I do to make this work?
P.S. I know I can leave Pyscripter and use kivy.bat,
but I would like to use the debugging capabilities within Pyscripter.
I think this is probably because kivy.bat really sets up and uses a second python distribution that has kivy installed. However, pyscripter is using your normal system installation, which does not have the kivy module installed.
You can probably tell pyscripter to use the kivy interpreter with the right environment set up. I don't know how exactly (I haven't ever tried on windows), but for instance this previous question is similar but about pycharm rather than pyscripter. I have pasted the answer below, some of it relates specifically to pycharm but something similar will probably work for pyscripter.
Install and open PyCharm
If you already had it installed and have a project open, click File -> Settings (Ctrl + Alt + S). (If not, create a new project, and
click the '...' next to interpreter, and skip step 2)
Under Project Settings, click Project Interpreter -> Python Interpreters
Click the little green + and select local (You can also set up an interpreter to your installed python from this list)
Point it to ..\Kivy\Python\python.exe and click ok (Mine's path was c:\Program files (x86)\Kivy\Python\python.exe since that is where
I unzipped the kivy zip file to)
I have also attached a settings.jar file here
https://groups.google.com/forum/#!topic/kivy-users/xTpib2C8r_A. This
is the kv language definition. Its not complete, but it helps a lot.
Click File->Import-> Select the settings.jar file. Only FileTypes will
be ticked. import this and you will have "kv language file" definition
under File->Settings-IDE Settings->File Types
Open a kv file to see the differentiation in colours, as well as
autocomplete Widgets are type 1 Properties are type 2 all events
(on_something) are type 3 type 4 is just self and root.
-- That is all for PyCharm, the rest is Windows 7 specific things. -- 1. open a command prompt and browse to your ..\Kivy\Python\lib folder 2. type mklink /D kivy "..\Kivy\kivy\kivy" (Mines line was mklink /D kivy "c:\Program files (x86)\Kivy\kivy\kivy") This will set up a
symlink so that your all your kivy python files are read and their
definitions are included, in order to get autocomplete
Now we need to set up the environment variables. You could do this per
project inside PyCharm, but might as well do it in windows, so you
only need to select the python interpreter each time Click start and
type envir Select the second one. (System variables) ( You could also
get here with Win+PauseBreak-> Click Advanced system settings) Click
Environment variables
Now add these (Once again, just point to wherever you have your kivy
folder. You can also find all these in the kivy.bat file, just find
and replace the variables with your path)
GST_PLUGIN_PATH c:\Program Files
(x86)\Kivy\gstreamer\lib\gstreamer-0.10
GST_REGISTRY c:\Program Files (x86)\Kivy\gstreamer\registry.bin
PATH c:\Program Files (x86)\Kivy;c:\Program Files
(x86)\Kivy\Python;c:\Program Files (x86)\Kivy\gstreamer\bin;c:\Program
Files (x86)\Kivy\MinGW\bin;c:\Program Files (x86)\Kivy;c:\Program
Files (x86)\Kivy\Python;c:\Program Files
(x86)\Kivy\gstreamer\bin;c:\Program Files (x86)\Kivy\kivy;%PATH%
Restart your machine. (For the environment variables to load)
Now when you open your kivy project, just select the Kivy interpreter
you set up earlier, and bobs your uncle.
You can also try to install kivy in your existing python installation. The kivy website has instructions for this here. I haven't tried this, and there may be some tricky bits.
I've had the same trouble and I solved it out using a pyscripter's option in the 'Tools' menu called 'Edit Startup scripts' which's name says it all.
Everything you write there should be executed whenever pyscripter starts a python interpreter so it can be used among other things to do the same as 'kivy.bat' but inside pyscripter, I wrote the following startup script basing on info from here How to develop and run kivy apps on PyDev and it works fine for me.
# This startup script makes it possible to Pyscripter to work with the kivy package
import sys
import os
kivy_path = 'C:/kivy'
relative_modules_paths = ['/kivy',
'/Python/',
'/Python/Lib/',
'/Python/Lib/Site-packages/',]
# tells the interpreter to look for python modules in the kivy modules' paths
for relative_path in relative_modules_paths:
sys.path.append( kivy_path+relative_path )
# sets some environment variables needed by kivy. Not permanent.
os.environ['GST_PLUGIN_PATH'] = kivy_path+'/gstreamer/lib/gstreamer-0.10'
os.environ['GST_REGISTRY'] = kivy_path+'gstreamer/registry.bin'
kivy_environ_paths = '{kp};{kp}/Python;{kp}/gstreamer/bin;{kp}/MinGW/bin;'
kivy_environ_paths = kivy_environ_paths.format( kp=kivy_path )
os.environ['PATH'] = kivy_environ_paths
# theorecally your environment variables won't be affected outside the
# interpreter. You can still backup your environment variables if you
# don't feel confident
Just change the kivy_path variable in the script so it fixes with the kivy package's path (folder containing kivy.bat) on your computer and you should be able to run your kivy apps just like when you open them with kiby.bat