Не удается установить Kivy (Ubuntu 20.04, python 3.8)

#python #installation #pip #kivy

#python #установка #pip #kivy

Вопрос:

На моем ноутбуке Ubuntu 20.04 установлен Python 3.8. Я хочу запустить некоторый предоставленный мне код, который использует Kivy.

Когда я пытаюсь установить Kivy с помощью sudo pip3 install Kivy , я получаю сообщение об ошибке

 Collecting Kivy
  Using cached Kivy-1.11.1.tar.gz (23.6 MB)
    ERROR: Command errored out with exit status 1:
[...]
  

Я могу установить версию 2.0.0rc3 с sudo pip3 install Kivy==2.0.0rc3 помощью, но мой код не будет работать с этой версией

  Traceback (most recent call last):
   File "/usr/local/lib/python3.8/dist-packages/IPython/core/interactiveshell.py", line 3417, in run_code
     exec(code_obj, self.user_global_ns, self.user_ns)
   File "<ipython-input-2-8c0a5b6d250a>", line 1, in <module>
     runfile('myDir/myFile.py', wdir='myDir/')
   File "/snap/pycharm-professional/218/plugins/python/helpers/pydev/_pydev_bundle/pydev_umd.py", line 197, in runfile
     pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
   File "/snap/pycharm-professional/218/plugins/python/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
     exec(compile(contents "n", file, 'exec'), glob, loc)
   File "myDir/myFile.py", line 142, in <module>
     FreePosApp().run()
   File "/home/thomas/.local/lib/python3.8/site-packages/kivy/app.py", line 949, in run
     self._run_prepare()
   File "/home/thomas/.local/lib/python3.8/site-packages/kivy/app.py", line 919, in _run_prepare
     root = self.build()
   File "myDir/myFile.py", line 127, in build
     textbox = Button(text = textBoxes[key][2],id=str(key), size_hint = textBoxes[key][1], pos = textBoxes[key][0],
   File "/home/thomas/.local/lib/python3.8/site-packages/kivy/uix/behaviors/button.py", line 121, in __init__
     super(ButtonBehavior, self).__init__(**kwargs)
   File "/home/thomas/.local/lib/python3.8/site-packages/kivy/uix/label.py", line 318, in __init__
     super(Label, self).__init__(**kwargs)
   File "/home/thomas/.local/lib/python3.8/site-packages/kivy/uix/widget.py", line 350, in __init__
     super(Widget, self).__init__(**kwargs)
   File "kivy/_event.pyx", line 245, in kivy._event.EventDispatcher.__init__
 TypeError: object.__init__() takes exactly one argument (the instance to initialize)
Process finished with exit code 137 (interrupted by signal 9: SIGKILL)
  

Заранее спасибо

Ответ №1:

Возможно, я устарел, но python 3.8 совместим только с этой версией kivy (kivy 2.0.0).

Стабильной версией kivy является 1.11.1, которая совместима с python 2.7, 3.5, 3.6 и 3.7

Вы должны попробовать установить его на python 3.7.

Если вам нужно использовать python 3.8, вы должны прочитать проблему https://github.com/kivy/kivy/issues/6563 , и попробуйте предложить «matham».

 pip install kivy[base] kivy_examples --pre --extra-index-url https://kivy.org/downloads/simple/
  

удачи!

Комментарии:

1. Большое вам спасибо! Это сработало для меня. Я изо всех сил пытался установить python 3.7, но как только это было сделано, я легко установил Kivy 1.1.1, и исходный код теперь работает!

Ответ №2:

Попробуйте обновить setuptools с помощью следующей команды.

 python -m pip install --upgrade --user pip setuptools
  

затем попробуйте установить kivy.