Cross-platform Neovim installation via Python packaging
Project description
binwheels-neovim
An unofficial Python package to enable pre-built, cross-platform Neovim installation via standard Python package installation.
Usage
# uv
uv tool install binwheels-neovim
# pipx
pipx install binwheels-neovim
After installation, the nvim command will be available in your PATH:
nvim myfile.txt
How does it work?
Python wheels adhere to a naming scheme to indicate platform compatibility. The code in this repository is responsible for downloading (Windows/macOS) or compiling (Linux) an official Neovim release and packaging it into a binwheels-neovim wheel with the same version as the Neovim release it includes, and with platform/architecture tags that match the version of Neovim we have downloaded/compiled. For widest Python interpreter compatibility possible, the py3-none tag is used.
During installation, the contents of a Python wheel are unzipped to the site-packages/ directory in whatever Python environment the wheel is being installed into. This is where the Neovim application files end up: a binwheels_neovim/ directory inside site-packages/. But this doesn't help us, because that location is not on the user's $PATH.
To make nvim accessible on the user's $PATH we will leverage the executable scripts functionality of a Python wheel. This functionality allows you to specify a function in your package that will be installed as an executable command in the user's environment. If your environment is a local .venv/ directory, for example, the script would be installed to .venv/bin/. When using uv tool install or pipx install, the executable is added to a location on the user's $PATH.
Putting it all together: In order to make the nvim binary from this package available on the user's path, we need a Python function that will launch the nvim binary in a cross-platform way, and we need that function to itself be installed as an executable command named nvim. That is accomplished by the following:
- A file at
neovim_pyinstaller/main.py, which contains alaunch_neovim()function that launches thenvimbinary. - The following entry in
pyproject.toml, which ensureslaunch_neovim()is installed as an executable command namednvim:
[project.scripts]
nvim = "binwheels_neovim.main:launch_neovim"
Platform Support
Currently
- Linux (x64)
- macOS (x64, arm64)
- Windows (x64)
Maybe one day
- Linux (arm64)
License
This package is licensed under Apache-2.0. Neovim itself is licensed under Apache-2.0 and Vim license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file binwheels_neovim-0.11.4-py3-none-win_amd64.whl.
File metadata
- Download URL: binwheels_neovim-0.11.4-py3-none-win_amd64.whl
- Upload date:
- Size: 12.2 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dd400d88902e10d5cdd24b0d0cd277e616252bee878dc8dda01195ca0634ceb
|
|
| MD5 |
2c98652eff2777f904a5700a47489217
|
|
| BLAKE2b-256 |
4c015ad842c93250790ea0ec9d87a2cfac0b37e419f512a47afabc23e13b3916
|
File details
Details for the file binwheels_neovim-0.11.4-py3-none-manylinux_2_24_x86_64.whl.
File metadata
- Download URL: binwheels_neovim-0.11.4-py3-none-manylinux_2_24_x86_64.whl
- Upload date:
- Size: 15.7 MB
- Tags: Python 3, manylinux: glibc 2.24+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b7776ea1bf4a23a3ba3099f7159f67abc0876e0ba1c496b4ec7262c52ff54f4
|
|
| MD5 |
9a117d2edcf3c4c4dea82b1c95e30070
|
|
| BLAKE2b-256 |
065d94c9b35c724250a8d84626a219ece61575c6d3c5ac29666749f566410138
|
File details
Details for the file binwheels_neovim-0.11.4-py3-none-macosx_11_0_x86_64.whl.
File metadata
- Download URL: binwheels_neovim-0.11.4-py3-none-macosx_11_0_x86_64.whl
- Upload date:
- Size: 10.5 MB
- Tags: Python 3, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f577e7a2ad6d6c853e338fdbaff1aa01e8ba102bd92b048113b0b915034f0ec
|
|
| MD5 |
2c92f834db5655d0ec1dcb60a9cd8e9c
|
|
| BLAKE2b-256 |
20640fdeeac0f3b4a584a13b65ec2b10bd6f81784fd424559d4a14a940d027a2
|
File details
Details for the file binwheels_neovim-0.11.4-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: binwheels_neovim-0.11.4-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 10.1 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8c6a0af4067ba0ae680e8d46554c426d9627e12f37ef7fe0b689507dbaa7f03
|
|
| MD5 |
a72956d21164dc443a9a4793bc39785c
|
|
| BLAKE2b-256 |
3131bf97ab75887fe07b3bc72a1fc7c270dc0f294bdc10752e30b8f0f04b83a0
|