openssl/aes.h' file not found on Mac

2020-05-21 12:41发布

问题:

I'm trying to install a python implementation of a proxy re-encryption scheme I found here.

When running $ sudo python setup.py install I get back an error

fatal error: 'openssl/aes.h' file not found

There are a few questions like this around (this or this (not for mac)) but none of the answers there fixed my problem.

I've tried (all taken from answers I found):

  1. Running env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography and trying again;
  2. brew install openssl and trying again;
  3. brew reinstall python and trying again;

Option 1. returned

Requirement already satisfied: cryptography in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Requirement already satisfied: six>=1.4.1 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from cryptography)
Requirement already satisfied: setuptools>=11.3 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from cryptography)
Requirement already satisfied: cffi>=1.4.1 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from cryptography)
Requirement already satisfied: pyasn1>=0.1.8 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from cryptography)
Requirement already satisfied: enum34 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from cryptography)
Requirement already satisfied: ipaddress in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from cryptography)
Requirement already satisfied: idna>=2.0 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from cryptography)
Requirement already satisfied: pycparser in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from cffi>=1.4.1->cryptography)

I'm running OSX 10.12.6.

Any ideas?

回答1:

First check if the path pointed out by $(brew --prefix openssl)/include exists.

If above is fine, you can try

$ cd /usr/local/include
$ ln -s ../opt/openssl/include/openssl .

Look at: Nginx Cannot Find OpenSSL Development Headers