Poznámka: Tento článok je zavádzajúci. Existuje novší článok, ktorý by ste mali zvážiť prečítať si najprv.

Rozhodol som sa spísať niekoľko podrobností o tom, ako sa mi podarilo nainštalovať python požiadavky pre neovim na Mac M3, pretože ako sa ukázalo, nie je to také jednoduché ako na Arch. Ale predtým, než skočíme priamo do akcie, trochu kontextu.

Keď spustíte nvim a zadáte :checkhealth, výstup obsahuje rôzne diagnostické správy o požiadavkách. Pre túto tému sa zameriame len na tie, ktoré sa týkajú pythonu. Keď vo vašom systéme vôbec nie je nainštalovaný python, môže to vyzerať nasledovne:

Python 3 provider (optional) ~
- Using: g:python3_host_prog = "/opt/homebrew/bin/python3"
- WARNING No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
- Executable: Not found

A tu bez pynvim:

Python 3 provider (optional) ~
- Using: g:python3_host_prog = "/opt/homebrew/bin/python3"
- Executable: /opt/homebrew/bin/python3
- ERROR Command error (job=18, exit code 1): `'/opt/homebrew/bin/python3' -c 'import sys; sys.path = [p for p in sys.path if p != ""]; import neovim; print(neovim.__file__)'`
  stderr: Traceback (most recent call last):  File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'neovim'
- Python version: 3.12.3
- pynvim version: unable to load neovim Python module
- ERROR pynvim is not installed.
  Error: unable to load neovim Python module
  - ADVICE:
    - Run in shell: /opt/homebrew/bin/python3 -m pip install pynvim

Na mojom systéme to v súčasnosti, v čase verzie v0.9.5, vyzerá takto:

Python 3 provider (optional) ~
- Using: g:python3_host_prog = "/opt/homebrew/bin/python3"
- Executable: /opt/homebrew/bin/python3
- Python version: 3.12.3
- pynvim version: 0.5.1dev0
- OK Latest pynvim is installed.

Všetko je v poriadku, python3 aj pynvim sú správne rozpoznané. Možno sa pýtate, prečo inštalovať python cez brew, keď mac prichádza s predinštalovaným python3 v /usr/bin/python3. Aj mňa to zastavilo, ale jedným z dôvodov je, keď chcete nainštalovať niečo iné cez brew, čo má Homebrew python ako závislosť, napríklad magic-wormhole (užitočné na rýchly prenos súborov medzi dvoma laptopmi).

Pre záznam, tu je zoznam toho, čo som skúšal, ale zlyhalo takým či onakým spôsobom:

/opt/homebrew/bin/python3 -m pip install pynvim
brew install pynvim
pipx install pynvim
pipx install python-neovim
pipx install python-pynvim
pip3 install 'pynvim @ git+https://github.com/neovim/pynvim'

A tu je aspoň časť krokov, ktoré mi fungovali. Začnite inštaláciou pythonu cez Homebrew:

brew install python

Nasmerujte neovim na cestu nášho Homebrew pythonu:

let g:python3_host_prog = '/opt/homebrew/bin/python3'

Nainštalujte pynvim:

pip3 install 'pynvim @ git+https://github.com/neovim/pynvim' --break-system-packages

Parameter --break-system-packages prirodzene naznačuje, že robíme niečo, čo by sa predvolene robiť nemalo, takže toto riešenie neodporúčam. Ale možno, ak ste v zúfalej situácii ako ja, mohli by ste si urobiť výskum, zvážiť riziká spojené s takýmto postupom a rozhodnúť sa preň.

Nižšie je odkaz na Github na rozsiahle vlákno diskutujúce o problémoch s pythonom a Homebrew, ktoré je podľa mňa vynikajúcim východiskovým bodom na štúdium, takže ak máte čas, nezabudnite sa pozrieť. Hoci je to mimoriadne dlhé, odkaz ukazuje priamo na najdôležitejší komentár, aby sa ušetril čas. Príjemnú prácu!

Odkazy #