Search code examples
pythonpython-3.xkivykivy-language

PyCharm error: kivy.garden.knob import successfully but not active on Script


I've tried continuous time to run https://github.com/kivy-garden/garden.knob "example.kv" file and "example.py" file.In order to implement knob into my project. Unfortunately, I can't run the above example code due to imported knob file don't active in my python script.

Edit: After installing virtualenv and activating the script I'm running the python script recognizing the import file but giving me with below error?

Error:

"C:\Program Files (x86)\Python37-32\python.exe" C:/Users/karannchat/PycharmProjects/knob/main.py 
[INFO   ] [Logger     ] Record log in C:\Users\karannchat\.kivy\logs\kivy_19-03-13_19.txt 
[INFO   ] [Kivy        ] v1.10.1 
[INFO   ] [Python      ] v3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (Intel)] 
[INFO   ] [Factory     ] 194 symbols loaded  

Traceback (most recent call last):    
   File "C:/Users/karannchat/PycharmProjects/knob/main.py", line 3, in <module>
         from kivy.garden.knob import  Knob     
   File "<frozen importlib._bootstrap>", line 983, in _find_and_load    
   File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked    
   File "<frozen importlib._bootstrap>", line 668, in _load_unlocked    
   File "<frozen importlib._bootstrap>", line 640, in
    _load_backward_compatible  KeyError: 'kivy.garden.knob'

<Main>
GridLayout:
    pos: root.pos
    size: root.size
    cols: 3
    spacing: 100
    padding: 50

    Knob:
        min:4
        max:5
        size: 200, 200
        value: 0
        show_marker: True
        knobimg_source: "img/knob_metal.png"
        show_marker: False

    Knob:
        size: 200, 200
        value: 0
        show_marker: True
        knobimg_source: "img/knob_metal.png"
        marker_img: "img/bline.png"
        markeroff_color: 0.3, 0.3, .3, 1

    Knob:
        size: 200, 200
        value: 0
        show_marker: True
        knobimg_source: ""
        knobimg_color: 0, 0, 0, 0
        marker_img: "img/bline.png"
        markeroff_color: 0, 0, 0, 0
        marker_inner_color: 0, 0, 0, 1

    Knob:
        size: 200, 200
        value: 0
        show_marker: True
        knobimg_source: "img/knob_metal.png"
        marker_img: "img/bline.png"
        markeroff_color: 0.0, 0.0, .0, 1
        knobimg_size: 0.7

    Knob:
        size: 200, 200
        step: 25
        value: 10
        show_marker: True
        knobimg_source: "img/knob_metal.png"
        marker_img: "img/bline2.png"
        markeroff_img: "img/bline2_off.png"
        markeroff_color: 0.3, 0.3, .3, 1
        marker_ahead: 6
        knobimg_size: 0.8
        marker_startangle: 6

    Knob:
        size: 200, 200
        value: 0
        knobimg_source: "img/knob_black.png"
        markeroff_color: 0.0, 0.0, .0, 1
        knobimg_size: 0.9
        marker_img: "img/bline3.png"

from kivy.base  import  runTouchApp
from kivy.lang  import  Builder
from kivy.garden.knob import  Knob # <<---- this is not active in the code hence i can't run the code 

# LOAD KV UIX
runTouchApp(Builder.load_file('main.kv'))

enter image description here


Solution

  • Problem

    Maybe missing a folder, __pycache__ and a module, e.g. __init__.cpython-37 in folder, Windows 10: C:\Users\usr\.kivy\garden\garden.knob (Replace usr with your username) or Xubuntu / Linux: ~/.kivy/garden/garden.knob.

    Solution

    Windows 10

    1. List all the garden packages installed using garden list at Command Prompt or Windows Powershell.
    2. cd Users\usr\.kivy\garden\garden.knob
    3. python -m py_compile __init__.py which should create the missing folder and module.

    Xubuntu / Linux

    1. List all the garden packages installed using garden list at Terminal Emulator.
    2. cd ~/.kivy/garden/garden.knob
    3. python3 -m py_compile __init__.py which should create the missing folder and module.

    Exit and relaunch PyCharm IDE.

    Missing folder, __pycache__ Missing module, __init__.cpython-37

    Example

    No problem running Kivy garden.knob on the following environments using PyCharm Community Edition 2018.3.5:

    • Xubuntu 18.04 Bionic Beaver, Kivy 1.10.1 & 1.11.0-dev, Python 3.6, and Python 2
    • Windows 10 Home, Kivy 1.10.1, and Python 3.7.2

    Output

    Kivy Garden Knob - Windows 10, Python 3 Kivy Garden Knob - Xubuntu 18.04, Python 3 Kivy Garden Knob - Xubuntu 18.04, Python 2