36
votes

I am trying to install something in my virtual environment, which uses anaconda python 3.6. I get the gcc failed with exit status 1, hinting on the absence of the right python3-devel package, as described in error: command 'gcc' failed with exit status 1 while installing eventlet.

To fix the error, I tried to install the python3-devel package on my server running RHEL 7.3. I did yum install python3-devel, but got a 'package not found' error. Then I found https://serverfault.com/questions/710354/repository-for-python3-devel-on-centos-7, which hints to the python34-devel package in the EPEL repository. I installed it using yum, but upon trying to install something in my virtual environment, I still get the gcc failed with exit status 1 error.

Does someone know how I can fix this? All help would be much apprechiated.

3
"gcc failed with exit status 1" is the symptom, not the cause.Ignacio Vazquez-Abrams
Hey, thanks for your reply. As I describe in my post, I believe the cause to be the absence of the python3-devel package.sequence_hard
Okay, but nothing in the question backs that up.Ignacio Vazquez-Abrams
True, added my source.sequence_hard
As a sidenote, I would recommend Red Hat Software Collections for installing Python3 instead of EPEL -- you get official support with that. See access.redhat.com/solutions/472793Robert Kratky

3 Answers

101
votes

Search for the package in yum , use the following command:

yum search python3 | grep devel

It will list all the available devel packages. The result will be somewhat like this

python3-cairo-devel.x86_64 : Libraries and headers for python3-cairo
python3-devel.x86_64 : Libraries and header files needed for Python 3
                     : development
python34-devel.x86_64 : Libraries and header files needed for Python 3
                      : development

Then you can choose the package you want to install from the list , suppose if you want to to install python3-devel , execute the following

yum install -y python3-devel.x86_64
12
votes

I thought I might update this for 2020. As of RHEL 7.7, python-devel is not available in EPEL, it has been retired by Fedora Project. All I wanted for today was the python h files, and this got me there:

# yum install python3-devel.x86_64 --enablerepo=rhel-7-server-optional-rpms

We do have one of the Redhat No-Cost Developer licenses, but I am not sure that is required for the optional-rpms.

PS, this was helpful in verifying which packages of interest were in optional-rpms

# yum repo-pkgs rhel-7-server-optional-rpms list | grep python3
11
votes

There are no python3-* packages from Red Hat in Red Hat Enterprise Linux 6 or 7.

However there are python3-* packages available if you enable third party repos like EPEL or IUS. But, these are not supported by Red Hat. Chances are if you are running RHEL, your organization has a preference for supported packages.

You can get supported Python 3 packages from Red Hat via Red Hat Software Collections (RHSCL). Currently Python 3.6 is the newest available, the package name is rh-python36. Installing the RHSCL package will also install rh-python36-devel and a number of other packages.

See How to install Python 3, pip, venv, virtualenv, and pipenv on RHEL

Don't forget to install @development first, so you have gcc, make, etc. for building any dynamically loaded shared objects.

To install:

$ su -
# subscription-manager repos --enable rhel-7-server-optional-rpms \
  --enable rhel-server-rhscl-7-rpms
# yum -y install @development
# yum -y install rh-python36

# yum -y install rh-python36-numpy \
 rh-python36-scipy \ 
 rh-python36-python-tools \
 rh-python36-python-six

# exit

The blog linked above has lots of tips for working with Python, virtual environments, as well as software collections on Red Hat.