Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

python 3.8, 3.9 support #6806

Closed
yvvt0379 opened this issue Apr 1, 2020 · 29 comments
Closed

python 3.8, 3.9 support #6806

yvvt0379 opened this issue Apr 1, 2020 · 29 comments

Comments

@yvvt0379
Copy link

yvvt0379 commented Apr 1, 2020

Is your feature request related to a problem? Please describe.
Kivy is so marvelous for me! But I'm just frustrated that there isn't a wheel for python 3.8 and 3.9

Describe the solution you'd like
Make python3.8 and 3.9 wheels avilable for pip.

Describe alternatives you've considered
none

Additional context
none

@HeyITGuyFixIt
Copy link
Contributor

Out of curiosity, does installing from source code work with python 3.8?

@yvvt0379
Copy link
Author

yvvt0379 commented Apr 2, 2020

Uh, I haven't tried. 😄

@matham
Copy link
Member

matham commented Apr 3, 2020

Unfortunately, we don't have wheels for python 3.8 for our stable release. We tried but we don't have things setup anymore to generate them.

However, if you're willing to use master, there are perfectly good wheels available for 3.8, and in fact the install has been significantly simplified. The key thing is in step 2 use pip install kivy[base] kivy_examples --pre --extra-index-url https://kivy.org/downloads/simple/ to get kivy from our server because it's not available on pypi.

To add them to pypi we'll need to make a new release, but that's not in the cards right now it seems.

@kurtsansom
Copy link

@matham what's holding back making a new release?

@matham
Copy link
Member

matham commented May 13, 2020

Developer time and effort that is lacking at the moment.

@swathisarang
Copy link

so how to fix it

@pythonic64 pythonic64 unpinned this issue Jul 23, 2020
@pythonic64 pythonic64 pinned this issue Jul 23, 2020
@GrennKren
Copy link

if someone still cannot install Kivy for python 3.8 in windows operating system, I suggesting download from https://www.lfd.uci.edu/~gohlke/pythonlibs/ and find Kivy. Kivy‑1.11.1‑cp38‑cp38‑win_amd64.whl .. means for python 3.8, windows OS x64.

and install that by pip install Kivy‑1.11.1‑cp38‑cp38‑win_amd64.whl (example)

@BelGrend
Copy link

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

solve my issue, thanks

@codinghedgehog-python
Copy link

codinghedgehog-python commented Oct 2, 2020

It's October now. Has there been any changes in terms of Kivy's wheel installation for Python 3.8 ?
I'm on Ubuntu 20.04 and the above mentioned solutions didn't work for me. Maybe because it's W10-specific.

At the moment pip3 install kivy on my machine errors out with:

```
ERROR: Dependency for context.pyx not resolved: config.pxi
ERROR: Dependency for compiler.pyx not resolved: config.pxi
ERROR: Dependency for context_instructions.pyx not resolved: config.pxi
ERROR: Dependency for fbo.pyx not resolved: config.pxi
ERROR: Dependency for gl_instructions.pyx not resolved: config.pxi
ERROR: Dependency for instructions.pyx not resolved: config.pxi
ERROR: Dependency for opengl.pyx not resolved: config.pxi
ERROR: Dependency for opengl_utils.pyx not resolved: config.pxi
ERROR: Dependency for shader.pyx not resolved: config.pxi
ERROR: Dependency for stencil_instructions.pyx not resolved: config.pxi
ERROR: Dependency for scissor_instructions.pyx not resolved: config.pxi
ERROR: Dependency for texture.pyx not resolved: config.pxi
ERROR: Dependency for vbo.pyx not resolved: config.pxi
ERROR: Dependency for vertex.pyx not resolved: config.pxi
ERROR: Dependency for vertex_instructions.pyx not resolved: config.pxi
ERROR: Dependency for cgl.pyx not resolved: config.pxi
ERROR: Dependency for cgl_mock.pyx not resolved: config.pxi
ERROR: Dependency for cgl_gl.pyx not resolved: config.pxi
ERROR: Dependency for cgl_glew.pyx not resolved: config.pxi
ERROR: Dependency for cgl_sdl2.pyx not resolved: config.pxi
ERROR: Dependency for svg.pyx not resolved: config.pxi
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
For the time being I downgraded to Python 3.6. I don't think I'll see that much of a difference.

@janek37
Copy link

janek37 commented Oct 7, 2020

As a potential newcomer to Kivy, I'm really put off by this lack of support. Is this how you want to greet new users? The obvious first step is pip install kivy and then we just have to look around why it doesn't work.

We support all major operating systems
https://kivy.org/doc/stable/philosophy.html

But not their current versions (like Ubuntu LTS), as it turns out.

@tshirtman
Copy link
Member

tshirtman commented Oct 8, 2020

No need for the negativity, we are all working pro-bono here, on our personal time. Help is always welcome, there is plenty to do.

Kivy absolutely works on Ubuntu 20.04, the docs can be updated to reflect that.

gabriel@gryphon:~> docker run -it ubuntu:20.04 bash
root@6599fa0c0d81:/# apt update
Get:1 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
[…]
Reading state information... Done
30 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@6599fa0c0d81:/# apt install python3.8 python3-pip -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
[…]
done.
root@6599fa0c0d81:/# python3.8 -m pip install --pre kivy[full]
Collecting kivy[all]
  Downloading Kivy-2.0.0rc3-cp38-cp38-manylinux2010_x86_64.whl (22.0 MB)
     |████████████████████████████████| 22.0 MB 13 kB/s 
  WARNING: kivy 2.0.0rc3 does not provide the extra 'all'
Collecting pygments
  Downloading Pygments-2.7.1-py3-none-any.whl (944 kB)
     |████████████████████████████████| 944 kB 5.6 MB/s 
Collecting docutils
  Downloading docutils-0.16-py2.py3-none-any.whl (548 kB)
     |████████████████████████████████| 548 kB 5.1 MB/s 
Collecting Kivy-Garden>=0.1.4
  Downloading kivy-garden-0.1.4.tar.gz (6.8 kB)
Collecting requests
  Downloading requests-2.24.0-py2.py3-none-any.whl (61 kB)
     |████████████████████████████████| 61 kB 459 kB/s 
Collecting chardet<4,>=3.0.2
  Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)
     |████████████████████████████████| 133 kB 9.6 MB/s 
Collecting certifi>=2017.4.17
  Downloading certifi-2020.6.20-py2.py3-none-any.whl (156 kB)
     |████████████████████████████████| 156 kB 13.4 MB/s 
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
  Downloading urllib3-1.25.10-py2.py3-none-any.whl (127 kB)
     |████████████████████████████████| 127 kB 5.0 MB/s 
Collecting idna<3,>=2.5
  Downloading idna-2.10-py2.py3-none-any.whl (58 kB)
     |████████████████████████████████| 58 kB 5.6 MB/s 
Building wheels for collected packages: Kivy-Garden
  Building wheel for Kivy-Garden (setup.py) ... done
  Created wheel for Kivy-Garden: filename=Kivy_Garden-0.1.4-py3-none-any.whl size=4531 sha256=40c7f88731f91c2bb078133980911f6b7a9415ac1398a2eb65a16ed605b468c7
  Stored in directory: /root/.cache/pip/wheels/d2/72/1a/9ddd17f00755707937caa350616965fb3330a6270425f397e6
Successfully built Kivy-Garden
Installing collected packages: pygments, docutils, chardet, certifi, urllib3, idna, requests, Kivy-Garden, kivy
Successfully installed Kivy-Garden-0.1.4 certifi-2020.6.20 chardet-3.0.4 docutils-0.16 idna-2.10 kivy-2.0.0rc3 pygments-2.7.1 requests-2.24.0 urllib3-1.25.10
root@6599fa0c0d81:/# python3.8
Python 3.8.5 (default, Jul 28 2020, 12:59:40) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import kivy
[WARNING] [Config      ] Older configuration version detected (0 instead of 21)
[WARNING] [Config      ] Upgrading configuration in progress.
[INFO   ] [Logger      ] Record log in /root/.kivy/logs/kivy_20-10-08_0.txt
[INFO   ] [Kivy        ] v2.0.0rc3, git-20c14b2, 20200615
[INFO   ] [Kivy        ] Installed at "/usr/local/lib/python3.8/dist-packages/kivy/__init__.py"
[INFO   ] [Python      ] v3.8.5 (default, Jul 28 2020, 12:59:40) 
[GCC 9.3.0]
[INFO   ] [Python      ] Interpreter at "/usr/bin/python3.8"
>>> 

@janek37
Copy link

janek37 commented Oct 8, 2020

Thank you and I'm sorry. Kivy looked really promising, but when I got to installation it turned out to be a chore. I'll give it a chance anyway and if I like it, I'll certainly consider joining the project.

@codinghedgehog-python
Copy link

Hi, I can see you're able to install Kivy into container with Python 3.8 installed.
The difference I've spotted is that you used the --pre flag. That did the trick for me. I couldn't install it without the flag.

The help page says this about the flag:

--pre Include pre-release and development versions. By default, pip only finds stable versions.

@matham
Copy link
Member

matham commented Oct 8, 2020

The comment above from April already indicated how to use the pre flag. And those instructions would have worked even before we uploaded the pre version to pypi a few months ago because it shows how to download from our server using pip.

@janek37
Copy link

janek37 commented Oct 8, 2020

It doesn't change my concern about scaring off potential new users (myself included). And including the --pre flag in the installation section of the documentation, while making things better than they are, will not be a perfect solution, as it still highlights that there is no working stable release for Python 3.8.

@matham
Copy link
Member

matham commented Oct 8, 2020

My comment was more directed at @codinghedgehog-python because I noticed multiple people commented here and elsewhere that it's not working after having seen this issue, but they somehow seemingly missed my comment from April and I wasn't sure why.

@RobertFlatt
Copy link
Contributor

in practice kivy==2.0.0rc3 installs on Python 3.8 , it is a de facto release version because this is what in practice we have to use on Android (which uses Python 3.8) .

What is missing from the Kivy 1.11.1 install documentation is (in big friendly letters) "Python 3.7 ONLY"

@matham
Copy link
Member

matham commented Oct 10, 2020

The major difficulty with the docs is that we cannot easily update the stable docs (CI won't build it anymore). So unless we change the front page to link to master docs, which we shouldn't do, we have no way to add this info to the (stable) docs new users see.

Perhaps in the future when we make a release and update stable docs, we should indicate on the docs the max python version supported with wheels.

@RobertFlatt
Copy link
Contributor

I see, but Kivy is starting to look like abandonware. Today there is somebody trying to install on Python 3.9

Perhaps release 2.0.0 and accept that it will not be perfect, at release.

@matham
Copy link
Member

matham commented Oct 10, 2020

It is true that kivy has less active core-devs than like 3-4 years ago, but that's the nature of open source where people come and go for whatever reasons and currently we're in a bit of a trough.

And the website specifically, kivy has needed a major website upgrade for like 5 years now, but no one who looked at that so far has followed through. I suppose it's not a minor undertaking.

The plan is to release 2.0.0 as soon as we can get 3.9 wheels to build: #7132 and someone works through the release notes etc. We typically release once a year, and it has been about a year since the last release. Except python has increased their release cadence to once a year as well so we don't have wheels for 3.8 just as 3.9 has been released.

@rnixx
Copy link
Member

rnixx commented Oct 11, 2020

@janek37 python (and javascript) devs tend to declare libraries abandoned, outdated, ... if they not support latest dependencies right away. Personally i prefer API stability and avoiding regressions over running bleeding edge dependency versions. Kivy is a complex piece of software, and in the discipline of reliability kivy devs do a very good job for a long time now.

@codinghedgehog-python
Copy link

Considering the fact that Kivy core devs don't have the funding like Canonical, Facebook or Microsoft they do pretty good job. Plus I gotta say I get very decent support on Discord and Stack Overflow from members of their team.
And if this and that sometimes doesn't work immediately and requires additional tweaking, well it's open source and manpower is expensive. Despite all that Kivy is still considered to be the most mature GUI framework out there so kudos for that.

@RobertFlatt
Copy link
Contributor

Perhaps I was not clear, Kivy and its developers are amazing.

But noobs don't understand that, they just experience that install doesn't work. More experienced users look at not supporting a fairly current version of Python as a red flag.

As I understand it Python 3.9 starts to address Python as a moving target, but until that is addressed there is an issue. Perhaps more frequent maintenance releases (ones that don't require documentation changes) would help?

Maintenance releases would now be stalled behind 2.0.0 . This needs to be released, even if it means 2.0.1 supporting Python 3.9 in the near future.

@matham
Copy link
Member

matham commented Oct 13, 2020

We're continuously improving the installation process by adding wheels for different os, trying to make the kivy deps simpler etc so for the next release it'd just work as a bare install with pip install kivy although the reccomended install will be pip install kivy[base] or pip install kivy[full]. Hence why we need to update the install with new releases. But perhaps it'll stabilize now that we have wheels for all major os and with the above changes.

Regarding making a release now without waiting for 3.9, that's not truly what's blocking right now. A few issues needs to be resolved before we can release and the time it takes to make a release like compiling release notes, testing on all os like conda, apt etc means that when that is ready 3.9 wheels should be ready as well.

@saintramon
Copy link

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

this solved my problem

@klm0488
Copy link

klm0488 commented Dec 1, 2020

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

this solved my problem on:

  • Mac OS Catalina 10.15.5
  • Python 3.8.2

Thx to All

@matham
Copy link
Member

matham commented Dec 10, 2020

Should be fixed with the latest release.

@matham matham closed this as completed Dec 10, 2020
@matham matham unpinned this issue Dec 10, 2020
@obfusk
Copy link

obfusk commented Dec 10, 2020

@matham I don't think #7244 is fixed yet.

@DietrichChristopeit
Copy link

DietrichChristopeit commented Jun 2, 2021

For me it works perfectly on LUbuntu 21.04:

I operate:

  1. LUbuntu 21.04 (latest updates etc.)

  2. pycharm PyCharm 2021.1.1 (Community Edition)
    Build #PC-211.7142.13, built on April 21, 2021
    Runtime version: 11.0.10+9-b1341.41 amd64
    VM: Dynamic Code Evolution 64-Bit Server VM by JetBrains s.r.o.
    Linux 5.11.0-18-generic
    GC: G1 Young Generation, G1 Old Generation
    Memory: 2048M
    Cores: 8

    Current Desktop: LXQt

  3. python 3.9.5

  4. pipenv environment for my project

I did:

  1. on command line::
    a. pipenv shell (in my project folder)
    b. pipenv install --pre kivy[full]

         - Result:
    
              Installing kivy[full]...
              Adding kivy to Pipfile's [packages]...
              ✔ Installation Succeeded 
              Pipfile.lock (3e2af4) out of date, updating to (d09673)...
              Locking [dev-packages] dependencies...
              Locking [packages] dependencies...
              Building requirements...
              Resolving dependencies...
              ✔ Success! 
              Updated Pipfile.lock (d09673)!
              Installing dependencies from Pipfile.lock (d09673)...
              🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 1/1 — 00:00:00
    
  2. switched to pycharm

  3. was happy as a lark

I noticed:

  1. installing it inside pycharm gave me dependency errors
  2. the kivy version is 2.0.0, but pycharm wouldn't let me install it, but does happily accept it when installed from terminal
  3. installing it from command-line is as always faster and easier

Hope that helps someone.
I am very surprised about the richness of features of kivy and the speed. So I would recommend anyone to really give it a try.

Best regards,
DCH

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests