Skip to content

Python 3.8 instead of Python 3.7 #1012

Closed

Description

@eirnym

It's time to move on to python 3.8. It was released half a year ago and vim core supports it. Most libraries which had supported python 3.7 also have support for python 3.8

Activity

  1. reopened this on Mar 3, 2020
  2. ychin commented on Mar 5, 2020

    @ychin
    Member

    Homebrew is still at 3.7.6: https://formulae.brew.sh/formula/python

    There are some discussions here (https://discourse.brew.sh/t/why-python-3-8-has-not-been-updated-yet/6057/16) and there is a ticket (Homebrew/homebrew-core#47274) tracking this migration.

    Given that Homebrew hasn't switched over I prefer to not upgrade until they do it. Part of the reason is that it complicates our CI build scripts and also I think we should assume most users install the default python package instead of the explicit python@3.8.

  3. eirnym commented on Mar 5, 2020

    @eirnym
    ContributorAuthor

    I still don't agree with an idea "all ports should use one true python/java/(any other tool)". I'm asking about only Github version.

    My personal opinion, that if Homebrew wants to stay behind using following ideology of "one true ..", they can patch vimrc and other defaults as they pleased.

  4. eirnym commented on Mar 6, 2020

    @eirnym
    ContributorAuthor

    I understand, that my proposition is not very nice, but Homebrew as any other package manager has much greater mobility to change params, code, and other things than users who use releases from Github like me.

    Unfortunately, simply specifying python3.8 in a library path doesn't work well for me.

  5. eirnym commented on Mar 12, 2020

    @eirnym
    ContributorAuthor

    @ychin BTW, Your response sounds like "you use Homebrew/MacPorts to use MacVim with Python3.8 (and more likely 3.7) or build and maintain it manually".

  6. ychin commented on Mar 16, 2020

    @ychin
    Member

    So can you be more specific what supporting "Python 3.8" means?

    Are you talking about how we automatically set pythonthreedll to be 3.7? Can't you just set that variable to the correct path yourself. The auto-detection is really a clutch because there's no way for Vim to be able to find all possible Python versions for you.

    Or did you mean something else?

  7. eirnym commented on Mar 16, 2020

    @eirnym
    ContributorAuthor

    I can't just change pythonthreedll as ABI is not compatible between python versions (third number is compatible while second may be not). PEP-606 to provide backward binary compatibility was rejected.

    So I need MacVim to be compiled with python3.8 and I'd like to update official vimrc from 3.7 to 3.8, that's it.

    As I've said, Homebrew, Macports and any other port system may stay with compatibility ranges of MacVim by using little patch to vimrc and by provide an appropriate argument to configure script. Alternatively to make manual patches, configure/make script itself may patch vimrc,

  8. eirnym commented on Jul 10, 2020

    @eirnym
    ContributorAuthor

    They already changed the python to 3.8 across the Homebrew.

  9. eirnym commented on Jul 10, 2020

    @eirnym
    ContributorAuthor

    Nevertheless, I ask you for making official builds with 2-3 major python releases when it's possible. Other languages doesn't change so much as Python nowadays. This will give an opportunity to use an official build and use Python version they want.

    For Homebrew only one build will not require an additional dependency installation, so price is small.

  10. luca-drf commented on Jul 13, 2020

    @luca-drf

    Homebrew migration to Python 3.8 is complete: Homebrew/homebrew-core#47274 (comment)
    Latest MacVim snapshot 163 which is installed by hombrew-cask seems to be pointing to Python 3.7

  11. itsayellow commented on Jul 14, 2020

    @itsayellow

    :python3 in my homebrew cask installed macvim is no longer operational because it doesn't find python3.7

    E370: Could not load library /usr/local/Frameworks/Python.framework/Versions/3.7/Python
    E263: Sorry, this command is disabled, the Python library could not be loaded.
    
  12. itsayellow commented on Jul 14, 2020

    @itsayellow

    When using homebrew's python, maybe in the future MacVim can default to the 'Current' subdirectory instead of a hard-coded version-numbered subdirectory, like:

    set pythonthreedll=/usr/local/Frameworks/Python.framework/Versions/Current/Python
    
  13. eirnym commented on Jul 14, 2020

    @eirnym
    ContributorAuthor

    When using homebrew's python, maybe in the future MacVim can default to the 'Current' subdirectory instead of a hard-coded version-numbered subdirectory, like:

    set pythonthreedll=/usr/local/Frameworks/Python.framework/Versions/Current/Python
    

    No, it's impossible to do as I wrote above Python resigned from PEP-606 to support backward binary compatibility. So you'll have problems with Python 3.7 used in MacVim & Python 3.8/3.9 etc.

  14. eirnym commented on Jul 14, 2020

    @eirnym
    ContributorAuthor

    :python3 in my homebrew cask installed macvim is no longer operational because it doesn't find python3.7

    E370: Could not load library /usr/local/Frameworks/Python.framework/Versions/3.7/Python
    E263: Sorry, this command is disabled, the Python library could not be loaded.
    

    this is one of problems I want to avoid

  15. martensson commented on Jul 16, 2020

    @martensson

    I am getting the same error now and unable to use Macvim after homebrew upgraded to 3.8.

  16. ychin commented on Jul 17, 2020

    @ychin
    Member

    I'll fix this in the weekend. But yes, the current way we are handling it is non-ideal.

  17. luca-drf commented on Jul 17, 2020

    @luca-drf

    I am getting the same error now and unable to use Macvim after homebrew upgraded to 3.8.

    I've resolved with:

    brew install python@3.7
    

    then

    ln -s /usr/local/Cellar/python@3.7/3.7.8_1/Frameworks/Python.framework/Versions/3.7 /usr/local/Frameworks/Python.framework/Versions/3.7
    
  18. astyagun commented on Jul 17, 2020

    @astyagun

    Another possible workaround:

    set pythonthreedll=/usr/local/Frameworks/Python.framework/Versions/Current/Python
  19. itsayellow commented on Jul 17, 2020

    @itsayellow

    Another possible workaround:

    set pythonthreedll=/usr/local/Frameworks/Python.framework/Versions/Current/Python

    I was using that for a while but started getting weird errors, it may have been some sort of binary incompatibility as mentioned by @eirnym above.

  20. eirnym commented on Jul 17, 2020

    @eirnym
    ContributorAuthor

    I am getting the same error now and unable to use Macvim after homebrew upgraded to 3.8.

    I've resolved with:

    
    brew install python@3.7
    
    

    then

    
    ln -s /usr/local/Cellar/python@3.7/3.7.8_1/Frameworks/Python.framework/Versions/3.7 /usr/local/Frameworks/Python.framework/Versions/3.7
    
    

    It's also possible to set pythonthreedll to /usr/local/Cellar/python@3.7/3.7.8_1/Frameworks/Python.framework/Versions/3.7 in your .vimrc

  21. added this to the snapshot-164 milestone on Jul 27, 2020
  22. ychin commented on Jul 27, 2020

    @ychin
    Member

    I believe @ichizok fixed this in d552421 already, and #1063 will make this compatible with binary install and MacPort as well. I think the issue here is the we haven't made a release yet so if you are using Homebrew Cask / official MacVim binary release you wouldn't have obtained that update that is built against 3.8 yet. I will try to make an update soon to address this.

  23. ychin commented on Aug 13, 2020

    @ychin
    Member

    Closing as version 164 is out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions