- Newest
- Most votes
- Most comments
Did you manage to solve this problem? We have practically the same setup (Django, SQS, Beanstalk, Celery) The error I always get on AWS is:
ConfigurationError: Curl is configured to use SSL, but we have not been able to determine which SSL backend it is using. Please see PycURL documentation for how to specify the SSL backend manually.
Tried all sorts of solutions on stackoverflow but no success so far :(
Currently I try to install pycurl manually through SSH on EC2 instance with different options like
sudo /opt/python/run/venv/bin/pip3 install pycurl --global-option="--with-nss" --no-cache-dir --compile
but I always get the error stated above
I solved my problem, checkout my post on SO:
https://stackoverflow.com/questions/51019622/curl-is-configured-to-use-ssl-but-we-have-not-been-able-to-determine-which-ssl/56260434#56260434
Hopefully it is of help for you!
Hi greg,
thank you for your time and sorry for the late reply.
I added your python config code inside .ebextensions and it is not working.
I'm assuming you do NOT include pycurl in requirements.txt, so I'm not including it. When trying to deploy, I get this error:
[Instance: i-0f1b890f9b54a47aa] Command failed on instance. Return code: 1 Output: (TRUNCATED)...ne which SSL backend it is using. Please see PycURL documentation for how to specify the SSL backend manually. ---------------------------------------- ERROR: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-2sam3zww/pycurl/. command 04_pycurl_reinstall in .ebextensions/01_pycurl.config failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
Which refers to this chunk in eb-activity.log:
File "/tmp/pip-install-qpd0hgmf/pycurl/setup.py", line 316, in configure_unix
specify the SSL backend manually.''')
__main__.ConfigurationError: Curl is configured to use SSL, but we have not been able to determine which SSL backend it is using. Please see PycURL documentation for how to specify the SSL backend manually.
So it looks like I need to specify pycurl backend somewhere. If I specify "--with-nss" I'm back to the beginning: deployment succeeds but celery workers are not functioning because (celery-worker.log):
raise ImportError('The curl client requires the pycurl library.')
ImportError: The curl client requires the pycurl library.
Ssh connecting and doing python3.6 -c 'import pycurl' gives more info on the error:
ImportError: pycurl: libcurl link-time ssl backend (openssl) is different from compile-time s sl backend (nss)
One question: with your solution, you ended up with OpenSSL instead of NSS, right? Are your workers able to connect to SQS? I'm not sure, but I remember I tried it some time ago and connection always shut down after a few hours and workers failed.
Or are you using nss? How?
Thanks and sorry, I'm really lost and desperate (I don't comment on the stackoverflow thread cause I don't have enough reputation).
Relevant content
- Accepted Answerasked 9 months ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 10 months ago
- AWS OFFICIALUpdated 5 months ago
- AWS OFFICIALUpdated 4 months ago