Last updated: Apr 13, 2024
Reading time·6 min

The Python "ERROR: filename.whl is not a supported wheel on this platform" occurs for multiple reasons:
.whl file with a 64-bit Python interpreter..whl file for a different Python version than the
currently installed one..whl file that is named incorrectly.pip version.
.whl file is 64-bit if your Python interpreter is 64-bitThe first thing you should ensure is that the .whl file is 64-bit if your
Python interpreter is 64-bit.
Similarly, if your .whl file is 32-bit, it can only be installed if your
Python interpreter is 32-bit.
You can download 32-bit and 64-bit .whl files for most Python modules on
this page.
First, check if your Python interpreter is 64-bit or 32-bit by issuing the following command in your shell (e.g. CMD).
python -c "import sys; print(sys.maxsize > 2**32)" # Or using py alias py -c "import sys; print(sys.maxsize > 2**32)" # Or using python3 python3 -c "import sys; print(sys.maxsize > 2**32)"

If you get a True value back, then your Python interpreter is 64-bit and you
can only install 64-bit .whl files.
False value, then your Python interpreter is 32-bit.You can also check if your Python interpreter is 64-bit or 32-bit with the following Python script.
import platform print(platform.architecture())
Assuming you stored the script in a main.py file, you can run it with one of
the following commands.
python main.py # Or with the `py` alias (Windows) py main.py # Or python3 (macOS and Linux) python3 main.py

If you try to install a 32-bit .whl file on a 64-bit Python interpreter and
vice versa, you would get the "filename.whl is not a supported wheel on this
platform" error.
The name of the .whl file indicates whether it is 64-bit or 32-bit.
For example, numpy‑1.22.4+vanilla‑cp310‑cp310‑win_amd64.whl is 64-bit.
Notice that the filename ends with win_amd64, which means 64-bit.
And numpy‑1.22.4+vanilla‑cp310‑cp310‑win32.whl is 32-bit.
Note that the filename ends with win32 which means 32-bit.
If you aren't able to get a .whl file of the correct number of bits, you can
try to rename the file that you have before running pip install.
For example, suppose that your Python interpreter is 64-bit but you have a
32-bit .whl file named numpy‑1.22.4+vanilla‑cp310‑cp310‑win32.whl.
You can try to rename the file as follows:
# ⛔ Before (32-bit) numpy‑1.22.4+vanilla‑cp310‑cp310‑win32.whl # ✅ After (64-bit) numpy‑1.22.4+vanilla‑cp310‑cp310‑win_amd64.whl
You can then rerun the pip install command.
pip install numpy‑1.22.4+vanilla‑cp310‑cp310‑win_amd64.whl
There is no guarantee that the installation will succeed but it is worth a try.
Similarly, if you have a 32-bit Python interpreter and have a 64-bit .whl
file, you can try to rename the file as follows.
# ⛔️ Before (64-bit) numpy‑1.22.4+vanilla‑cp310‑cp310‑win_amd64.whl # ✅ After (32-bit) numpy‑1.22.4+vanilla‑cp310‑cp310‑win32.whl
Then rerun the pip install command.
pip install numpy‑1.22.4+vanilla‑cp310‑cp310‑win32.whl
You can also check the supported tags on your system by issuing the
pip debug --verbose command.
pip debug --verbose

The command will list all tags that are supported on your system.
The .whl file that you are installing has to match one of the supported tags.
.whl file matches your Python versionAnother common cause of the error is trying to install .whl file that
requires one Python version on another Python version.
First, check your Python version by issuing one of the following commands.
python --version # Or with the `py` alias (Windows) py --version # Or python3 (macOS and Linux) python3 --version

The screenshot shows that my Python version is 3.10, therefore the .whl file
also has to have a version of 3.10.
You can check the Python version of a .whl file by looking at its name.
For example, numpy‑1.22.4+vanilla‑cp310‑cp310‑win_amd64.whl has a Python
version of 3.10.
Notice that the filename contains cp310.
Similarly, the file numpy‑1.22.4+vanilla‑cp39‑cp39‑win_amd64.whl has a Python
version of 3.9 because its name contains cp39.
The following file numpy‑1.16.6+mkl‑cp27‑cp27m‑win_amd64.whl has a Python
version of 2.7 because its name contains cp27.
Your Python version has to match the Python version of the .whl file for the
installation to succeed.
In many cases, you might be able to get around the error by changing the file's name.
For example, suppose you have a file named
numpy‑1.22.4+vanilla‑cp310‑cp310‑win_amd64.whl (Python 3.10) but your Python
version is 3.9.
In this case, you can try to change the Python version in the file's name to
numpy‑1.22.4+vanilla‑cp39‑cp39‑win_amd64.whl.
In other words, cp39 instead of cp310.
Now you should be able to run the pip install command without running into any
issues (assuming the package is 3.9 compatible).
pip install numpy‑1.22.4+vanilla‑cp39‑cp39‑win_amd64.whl
Note that this approach wouldn't work if the package is not Python 3.9 compatible.
.whl file that is named incorrectlyYou would also get the error if your .whl file is named incorrectly.
When you issue the pip install your-file.whl command, pip reads the name of
your .whl file to determine if it should even attempt to install it.
It checks if the .whl file is 64-bit or 32-bit and if your Python interpreter
matches.
.whl file and whether your Python version matches.If any of the conditions aren't met, pip will just raise the error without
attempting to install the .whl file.
A very common cause of the error is having a (1) or (2) at the end of the
filename due to downloading the same file multiple times.
For example, numpy‑1.22.4+vanilla‑cp310‑cp310‑win_amd64 (1).whl.
Make sure to remove the (1) at the end because it prevents pip from being
able to process the filename correctly.
# ⛔️ change this numpy‑1.22.4+vanilla‑cp310‑cp310‑win_amd64 (1).whl # ✅ to this numpy‑1.22.4+vanilla‑cp310‑cp310‑win_amd64.whl
Make sure you don't have anything extra in your filename as this would prevent
pip from parsing it correctly.
.whl fileLet's go through a step-by-step installation of a .whl file.
.whl file from
this website.My Python version is 3.10.
python --version # or py alias (Windows) py --version # or python (macOS and Linux) python3 --version

And my Python interpreter is 64-bit.
python -c "import sys; print(sys.maxsize > 2**32)" # or using py alias py -c "import sys; print(sys.maxsize > 2**32)" # or using python3 python3 -c "import sys; print(sys.maxsize > 2**32)"

True = 64-bit and False = 32-bit.
Therefore, I have to download the following file:
numpy‑1.22.4+vanilla‑cp310‑cp310‑win_amd64.whlThis is because cp310 means CPython version 3.10.
And win_amd64 means 64-bit Python interpreter.
In the unlikely case that your Python interpreter is 32-bit, you would be
looking for win32 instead of win_amd64.

You can click on the link of the correct .whl file to download it.
I'm using https://www.lfd.uci.edu/~gohlke/pythonlibs/ for the example.
Once you download the correct .whl file, open your terminal in the
directory in which the file is located.
Issue the pip install your-filename.whl command.
pip install your-filename.whl # or pip3 pip3 install your-filename.whl

pip install commandAnother common cause of the error is having an outdated version of pip.
You can try to upgrade your version of pip by using one of the following 3 commands.
python -m ensurepip --upgrade # py alias (Windows) py -m ensurepip --upgrade # python3 (macOS and Linux) python3 -m ensurepip --upgrade
If that doesn't work, try using the python -m command.
python -m pip install --upgrade pip # py alias (Windows) py -m pip install --upgrade pip # python3 (macOS and Linux) python3 -m pip install --upgrade pip
If that doesn't work either, follow the instructions on how to upgrade pip in
this article.
Once you've upgraded pip to the latest version, rerun your pip install
command.
pip install your-filename.whl # or pip3 pip3 install your-filename.whl

To solve the Python "ERROR: filename.whl is not a supported wheel on this platform" error, make sure:
.whl file is 64-bit if your Python interpreter is 64-bit..whl file matches your Python version..whl file is named correctly.pip.You can learn more about the related topics by checking out the following tutorials: