If you are a Python developer, you might come across the “error:legacy-install-failure” error while installing or upgrading packages using the pip install
command.
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
In this article, we will discuss the cause of the error and provide different solutions that can resolve the Legacy install failure error in python.
Table of Contents
What is “legacy-install-failure” error in python?
This error occurs because of compatibility issues when you try to install a python package using pip install command. To fix it you need to update your Package Manager or the Python version in your system.
The error means that the package you are trying to install or upgrade requires a newer version of Python. This error is common for users that are using Python2 or an older version of Python 3.
Causes of the “legacy-install-failure” error
The main reason for this error is that you are using an older version of python that is not compatible with the package you want to install or upgrade.
You can check in Python Package Index (PyPI) that all packages have a minimum version of Python to function properly.
If the Python version that is installed in your system does not match the minimum requirements of the specific package then you will get the “error: legacy-install-failure” error in your terminal.
Solutions to the error
Now, we know the reason for the error. So let’s see some of the solutions that can help you resolve the error in your project.
Solution 1: Upgrade pip and other built tools
One of the main reasons for the “legacy install failure” error is that the build tools you are using are not updated.
So, you have to upgrade pip
, setuptools
and wheel
versions before installing or upgrading any Python packages.
The build tools depend on the Python version and the operating system you are currently using on your computer.
To upgrade the build tools use the following commands given below:
#for pip
pip install --upgrade pip
#for pip3 (Python 3)
pip3 install --upgrade pip
#for you get any permission error
pip install --upgrade pip --user
If you do not have pip
in PATH environment variable, then use the following command:
python -m pip install --upgrade pip
#for python 3
python3 -m pip install --upgrade pip
For windows, use this command to update pip:
py -m pip install --upgrade pip
To upgrade setuptools
and wheel
, use the following code:
pip install --upgrade setuptools wheel
#for pip3 (Python 3)
pip3 install --upgrade setuptools wheel
#With no PATH
python -m pip install --upgrade setuptools wheel
python3 -m pip install --upgrade setuptools wheel
#for windows
py -m pip install --upgrade setuptools wheel
Now that you have successfully upgraded pip
and other build tools, you can now try to install packages using pip install <package name>
.
Solution 2: Check if the package name has been changed
Another reason that can cause the “legacy install failure” error is that the package you are trying to install has its name changed.
So double check the package name before installing a package in your project.
You can go to Python Package Index (PyPI) and check if the package name has been renamed or just google search “pypi package-name”.
For example, if you try to install the package – “Locust
” using the old name (locustio), it will throw an error. So, use the new name (locust) when installing the package.
#old package name (will throw an error)
pip install locustio
#use the new package name
pip install locust
#or
pip3 install locust
Solution 3: Install packages with –no-dependencies option
Another reason that might cause the “legacy-install-failure” error is conflicts between the package you are installing and the packages that are already installed in your computer.
To resolve this we have to use the --no-dependencies
options with the pip install
while installing a package.
pip install <package-name> --no-dependencies
This command will prevent pip
from installing any dependencies and will resolve the error.
Solution 4: Use a Virtual Environment
Another solution to fix the “legacy install failure” error is to use a virtual environment.
A virtual environment is a tool that allows the creation of an isolated python environment that is separated from your system’s Python installation.
Using a virtual environment we can install or upgrade packages without affecting the system’s Python installation.
To create a virtual environment, you can follow the steps given below.
Step 1: Navigate to your project folder and open your command prompt or terminal.
Step 2: Run the following command to create a virtual environment:
python -m venv venv
#or
python3 -m venv venv
#or
py -m venv venv
This command will create a virtual environment in a folder named as “venv” in your project directory.
Step 3: Next, we have to activate the virtual environment. To activate, run the following command:
For Linux or MacOS,
source venv/bin/activate
For windows,
#for command prompt
venvScriptsactivate.bat
#for powershell command
venvScriptsActivate.ps1
Step 4: Once the environment is created and activated, you can now try to install the package in your virtual environment using pip install
command.
pip install <package-name>
Solution 5: Activate developer path in MacOS
If you are on MacOS, you might get the following error while installing packages:
xcrun: error: invalid active developer path..
missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun.
This means you have to install the Xcode Command Line Tools to fix the error.
So before installing any packages, first install the xcode
using the following command:
xcode-select --install
Once successfully installed you can install Python packages without any issues.
Solution 6: Download .whl file for Windows
You can also install the wheel distribution of the specific package directly on your computer if you are a Windows user.
For example, let’s say you want to install numpy
package, so to do that go to pypi.org and search for your package name.
There you can see all the built distributions available for all operating systems.
For Windows users use the
win_
packages. You will two variants: amd64 for 64-bit and win32 for 32-bit devices.For MacOS users, use the
macosx_
packages. The x86_64 is for Intel Mac and universal for apple silicone.For Linux users, use the
manylinux_
packages. The x86_64 is for Intel and aarch64 is for ARM devices.
First, you have to download the Windows 64-bit version of the package in your system.
Next, open your powershell or cmd
in the same folder where you have downloaded the file and use pip install
command to install the package.
You can press Shift + right-click inside the folder to get the option “Open Powershell window here“.
pip install numpy-1.24.2-cp311-cp311-win_amd64.whl
#or use pip3
pip3 install numpy-1.24.2-cp311-cp311-win_amd64.whl
cp311
is the Python version 3.11 and amd64
means 64-bit.
This command will install the numpy
wheel package in your windows machine without any “legacy install failure” error message.
Conclusion:
In this article, we have learned about the causes of the “legacy-install-failure” python error. And also discussed the different solutions to resolve the issue.
The main reason for this error is the compatibility issue between the package with the version of pip
or python version installed on our computer.
And the easy way to solve this error is to upgrade the pip
and other build tools in our system.
You can also install the package directly in your system using the wheel distribution package (.whl
) from pypi.org.