Python provides you with a package installer called ‘pip.’ ‘Pip’ allows you to write a line of code to install packages and manage them. Although sometimes, when you are installing some packages, you might get an ‘error: legacy-install-failure.’ For example, if you are trying to install the gensim package in python.
Missing Compiler Errors
Python packages are typically installed using the pip package manager with the pip install command. pip will print a list of dependencies additionally required by the package you selected, and a long list of output from the install process. Sometimes, the installer will exit with an error, containing text like the following near the end of the output:
Output
x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.10 -I/usr/local/lib/python3.10/dist-packages/numpy/core/include -I/usr/include/python3.10 -c radiomics/src/_cmatrices.c -o build/temp.linux-x86_64-3.10/radiomics/src/_cmatrices.o
error: command ‘x86_64-linux-gnu-gcc’ failed: No such file or directory
[end of output]note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> pyradiomics
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
Some Python libraries, especially those used for scientific computing, need to compile additional code locally on your machine after being installed. Python is a high-level, interpreted language that can run with only the Python interpreter itself present. Low-level languages like C or Rust, which Python libraries occasionally include for high-performance processing, need to be compiled and optimized before being executable. If there isn’t a compiler present on your system, the installation will fail.
Solve error: legacy-install-failure For MySQL
MySQL provides services for handling and managing databases. When you connect your python application to an active server, you can manage all your database using MySQL. Although when installing using an ‘Error: legacy-install-failure’ error might occur. It can display something like this.
note: This error originates from a subprocess, and is likely not a problem with
pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> mysqlclient
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
To solve this following error, you will need to follow the steps given below:
First, run the commands given below
xcode-select –install
brew install zstd
pip install pymysql
pip install wheel
CFLAGS=”-I$(brew –prefix)/include” LDFLAGS=”-L$(brew –prefix)/lib” pip install mysqlclient==<version>
Further, make some changes in the settings file if you are using some framework like Django or any other. To make this change run these commands.
import pymysql
pymysql.install_as_MySQLdb()
Further, install all other dependencies in the env/lib/python3.8/site-packages/django/db/backends/mysql/base.py directory. These dependencies can be installed like:
pip install mysql-connector-python
pip install cryptography
Now try to install MySQL again, as following these steps should solve the error.